@scrypted/server 0.123.7 → 0.123.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/scrypted-cluster.js +13 -1
- package/dist/scrypted-cluster.js.map +1 -1
- package/dist/services/cluster-fork.d.ts +1 -0
- package/dist/services/cluster-fork.js +9 -0
- package/dist/services/cluster-fork.js.map +1 -1
- package/package.json +1 -1
- package/src/scrypted-cluster.ts +15 -1
- package/src/services/cluster-fork.ts +10 -0
package/dist/scrypted-cluster.js
CHANGED
@@ -91,7 +91,7 @@ function peerLifecycle(serializer, peer, socket, type) {
|
|
91
91
|
}
|
92
92
|
function preparePeer(socket, type) {
|
93
93
|
const serializer = (0, rpc_serializer_1.createRpcDuplexSerializer)(socket);
|
94
|
-
const peer = new rpc_1.RpcPeer(
|
94
|
+
const peer = new rpc_1.RpcPeer(`cluster-remote:${socket.remoteAddress}:${socket.remotePort}`, 'cluster-host', (message, reject, serializationContext) => {
|
95
95
|
serializer.sendMessage(message, reject, serializationContext);
|
96
96
|
});
|
97
97
|
peerLifecycle(serializer, peer, socket, type);
|
@@ -140,6 +140,12 @@ function startClusterClient(mainFilename) {
|
|
140
140
|
port,
|
141
141
|
rejectUnauthorized: false,
|
142
142
|
});
|
143
|
+
socket.on('secureConnect', () => {
|
144
|
+
console.log('Cluster server connected.', socket.localAddress, socket.localPort);
|
145
|
+
});
|
146
|
+
socket.on('close', () => {
|
147
|
+
console.log('Cluster server disconnected.', socket.localAddress, socket.localPort);
|
148
|
+
});
|
143
149
|
const peer = preparePeer(socket, 'client');
|
144
150
|
try {
|
145
151
|
const connectForkWorker = await peer.getParam('connectForkWorker');
|
@@ -229,6 +235,7 @@ function startClusterClient(mainFilename) {
|
|
229
235
|
catch (e) {
|
230
236
|
peer.kill(e.message);
|
231
237
|
socket.destroy();
|
238
|
+
console.warn('Cluster client error:', e);
|
232
239
|
}
|
233
240
|
await backoff;
|
234
241
|
}
|
@@ -239,6 +246,10 @@ function createClusterServer(runtime, certificate) {
|
|
239
246
|
key: certificate.serviceKey,
|
240
247
|
cert: certificate.certificate,
|
241
248
|
}, (socket) => {
|
249
|
+
console.log('Cluster client connected.', socket.remoteAddress, socket.remotePort);
|
250
|
+
socket.on('close', () => {
|
251
|
+
console.log('Cluster client disconnected.', socket.remoteAddress, socket.remotePort);
|
252
|
+
});
|
242
253
|
const peer = preparePeer(socket, 'server');
|
243
254
|
const connectForkWorker = async (auth, properties) => {
|
244
255
|
try {
|
@@ -262,6 +273,7 @@ function createClusterServer(runtime, certificate) {
|
|
262
273
|
socket.on('close', () => {
|
263
274
|
runtime.clusterWorkers.delete(worker);
|
264
275
|
});
|
276
|
+
console.log('Cluster client authenticated.', socket.remoteAddress, socket.remotePort, properties);
|
265
277
|
}
|
266
278
|
catch (e) {
|
267
279
|
peer.kill(e);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"scrypted-cluster.js","sourceRoot":"","sources":["../src/scrypted-cluster.ts"],"names":[],"mappings":";;;;;;AAoDA,wDAmCC;AAkCD,oDAyBC;AAED,4CAKC;AAID,
|
1
|
+
{"version":3,"file":"scrypted-cluster.js","sourceRoot":"","sources":["../src/scrypted-cluster.ts"],"names":[],"mappings":"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"}
|
@@ -4,4 +4,5 @@ export declare class ClusterFork {
|
|
4
4
|
runtime: ScryptedRuntime;
|
5
5
|
constructor(runtime: ScryptedRuntime);
|
6
6
|
fork(peerLiveness: PeerLiveness, options: ClusterForkOptions, packageJson: any, zipHash: string, getZip: () => Promise<Buffer>): Promise<import("../scrypted-cluster").ClusterForkResult>;
|
7
|
+
getClusterWorkers(): Promise<any>;
|
7
8
|
}
|
@@ -20,6 +20,15 @@ class ClusterFork {
|
|
20
20
|
const fork = await worker.peer.getParam('fork');
|
21
21
|
return fork(peerLiveness, options.runtime, packageJson, zipHash, getZip);
|
22
22
|
}
|
23
|
+
async getClusterWorkers() {
|
24
|
+
const ret = {};
|
25
|
+
for (const worker of this.runtime.clusterWorkers) {
|
26
|
+
ret[worker.peer.peerName] = {
|
27
|
+
labels: worker.labels,
|
28
|
+
};
|
29
|
+
}
|
30
|
+
return ret;
|
31
|
+
}
|
23
32
|
}
|
24
33
|
exports.ClusterFork = ClusterFork;
|
25
34
|
//# sourceMappingURL=cluster-fork.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"cluster-fork.js","sourceRoot":"","sources":["../../src/services/cluster-fork.ts"],"names":[],"mappings":";;;AACA,0DAA+G;AAE/G,MAAa,WAAW;IACD;IAAnB,YAAmB,OAAwB;QAAxB,YAAO,GAAP,OAAO,CAAiB;IAAI,CAAC;IAEhD,KAAK,CAAC,IAAI,CAAC,YAA0B,EAAE,OAA2B,EAAE,WAAgB,EAAE,OAAe,EAAE,MAA6B;QAChI,MAAM,eAAe,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACpE,MAAM;YACN,OAAO,EAAE,IAAA,uCAAoB,EAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC;SACxD,CAAC,CAAC;aACF,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;QAClC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAChF,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC;QAE1C,IAAI,CAAC,MAAM;YACP,MAAM,IAAI,KAAK,CAAC,sCAAsC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAE5F,MAAM,IAAI,GAAqB,MAAM,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAClE,OAAO,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAC7E,CAAC;CACJ;
|
1
|
+
{"version":3,"file":"cluster-fork.js","sourceRoot":"","sources":["../../src/services/cluster-fork.ts"],"names":[],"mappings":";;;AACA,0DAA+G;AAE/G,MAAa,WAAW;IACD;IAAnB,YAAmB,OAAwB;QAAxB,YAAO,GAAP,OAAO,CAAiB;IAAI,CAAC;IAEhD,KAAK,CAAC,IAAI,CAAC,YAA0B,EAAE,OAA2B,EAAE,WAAgB,EAAE,OAAe,EAAE,MAA6B;QAChI,MAAM,eAAe,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACpE,MAAM;YACN,OAAO,EAAE,IAAA,uCAAoB,EAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC;SACxD,CAAC,CAAC;aACF,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;QAClC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAChF,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC;QAE1C,IAAI,CAAC,MAAM;YACP,MAAM,IAAI,KAAK,CAAC,sCAAsC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAE5F,MAAM,IAAI,GAAqB,MAAM,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAClE,OAAO,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAC7E,CAAC;IAED,KAAK,CAAC,iBAAiB;QACnB,MAAM,GAAG,GAAQ,EAAE,CAAC;QACpB,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;YAC/C,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG;gBACxB,MAAM,EAAE,MAAM,CAAC,MAAM;aACxB,CAAC;QACN,CAAC;QACD,OAAO,GAAG,CAAC;IACf,CAAC;CACJ;AA5BD,kCA4BC"}
|
package/package.json
CHANGED
package/src/scrypted-cluster.ts
CHANGED
@@ -105,7 +105,7 @@ function peerLifecycle(serializer: ReturnType<typeof createRpcDuplexSerializer>,
|
|
105
105
|
|
106
106
|
function preparePeer(socket: tls.TLSSocket, type: 'server' | 'client') {
|
107
107
|
const serializer = createRpcDuplexSerializer(socket);
|
108
|
-
const peer = new RpcPeer(
|
108
|
+
const peer = new RpcPeer(`cluster-remote:${socket.remoteAddress}:${socket.remotePort}`, 'cluster-host', (message, reject, serializationContext) => {
|
109
109
|
serializer.sendMessage(message, reject, serializationContext);
|
110
110
|
});
|
111
111
|
|
@@ -170,6 +170,13 @@ export function startClusterClient(mainFilename: string) {
|
|
170
170
|
rejectUnauthorized: false,
|
171
171
|
});
|
172
172
|
|
173
|
+
socket.on('secureConnect', () => {
|
174
|
+
console.log('Cluster server connected.', socket.localAddress, socket.localPort);
|
175
|
+
});
|
176
|
+
socket.on('close', () => {
|
177
|
+
console.log('Cluster server disconnected.', socket.localAddress, socket.localPort);
|
178
|
+
});
|
179
|
+
|
173
180
|
const peer = preparePeer(socket, 'client');
|
174
181
|
|
175
182
|
try {
|
@@ -278,6 +285,7 @@ export function startClusterClient(mainFilename: string) {
|
|
278
285
|
catch (e) {
|
279
286
|
peer.kill(e.message);
|
280
287
|
socket.destroy();
|
288
|
+
console.warn('Cluster client error:', e);
|
281
289
|
}
|
282
290
|
await backoff;
|
283
291
|
}
|
@@ -289,6 +297,11 @@ export function createClusterServer(runtime: ScryptedRuntime, certificate: Retur
|
|
289
297
|
key: certificate.serviceKey,
|
290
298
|
cert: certificate.certificate,
|
291
299
|
}, (socket) => {
|
300
|
+
console.log('Cluster client connected.', socket.remoteAddress, socket.remotePort);
|
301
|
+
socket.on('close', () => {
|
302
|
+
console.log('Cluster client disconnected.', socket.remoteAddress, socket.remotePort);
|
303
|
+
});
|
304
|
+
|
292
305
|
const peer = preparePeer(socket, 'server');
|
293
306
|
|
294
307
|
const connectForkWorker: ConnectForkWorker = async (auth: ClusterObject, properties: ClusterWorkerProperties) => {
|
@@ -313,6 +326,7 @@ export function createClusterServer(runtime: ScryptedRuntime, certificate: Retur
|
|
313
326
|
socket.on('close', () => {
|
314
327
|
runtime.clusterWorkers.delete(worker);
|
315
328
|
});
|
329
|
+
console.log('Cluster client authenticated.', socket.remoteAddress, socket.remotePort, properties);
|
316
330
|
}
|
317
331
|
catch (e) {
|
318
332
|
peer.kill(e);
|
@@ -19,4 +19,14 @@ export class ClusterFork {
|
|
19
19
|
const fork: ClusterForkParam = await worker.peer.getParam('fork');
|
20
20
|
return fork(peerLiveness, options.runtime, packageJson, zipHash, getZip);
|
21
21
|
}
|
22
|
+
|
23
|
+
async getClusterWorkers() {
|
24
|
+
const ret: any = {};
|
25
|
+
for (const worker of this.runtime.clusterWorkers) {
|
26
|
+
ret[worker.peer.peerName] = {
|
27
|
+
labels: worker.labels,
|
28
|
+
};
|
29
|
+
}
|
30
|
+
return ret;
|
31
|
+
}
|
22
32
|
}
|