@scrypted/server 0.123.7 → 0.123.9
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 +14 -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 +2 -2
- package/src/scrypted-cluster.ts +16 -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,13 @@ function startClusterClient(mainFilename) {
|
|
140
140
|
port,
|
141
141
|
rejectUnauthorized: false,
|
142
142
|
});
|
143
|
+
const { localAddress, localPort } = socket;
|
144
|
+
socket.on('secureConnect', () => {
|
145
|
+
console.log('Cluster server connected.', localAddress, localPort);
|
146
|
+
});
|
147
|
+
socket.on('close', () => {
|
148
|
+
console.log('Cluster server disconnected.', localAddress, localPort);
|
149
|
+
});
|
143
150
|
const peer = preparePeer(socket, 'client');
|
144
151
|
try {
|
145
152
|
const connectForkWorker = await peer.getParam('connectForkWorker');
|
@@ -229,6 +236,7 @@ function startClusterClient(mainFilename) {
|
|
229
236
|
catch (e) {
|
230
237
|
peer.kill(e.message);
|
231
238
|
socket.destroy();
|
239
|
+
console.warn('Cluster client error:', localAddress, localPort, e);
|
232
240
|
}
|
233
241
|
await backoff;
|
234
242
|
}
|
@@ -239,6 +247,10 @@ function createClusterServer(runtime, certificate) {
|
|
239
247
|
key: certificate.serviceKey,
|
240
248
|
cert: certificate.certificate,
|
241
249
|
}, (socket) => {
|
250
|
+
console.log('Cluster client connected.', socket.remoteAddress, socket.remotePort);
|
251
|
+
socket.on('close', () => {
|
252
|
+
console.log('Cluster client disconnected.', socket.remoteAddress, socket.remotePort);
|
253
|
+
});
|
242
254
|
const peer = preparePeer(socket, 'server');
|
243
255
|
const connectForkWorker = async (auth, properties) => {
|
244
256
|
try {
|
@@ -262,6 +274,7 @@ function createClusterServer(runtime, certificate) {
|
|
262
274
|
socket.on('close', () => {
|
263
275
|
runtime.clusterWorkers.delete(worker);
|
264
276
|
});
|
277
|
+
console.log('Cluster client authenticated.', socket.remoteAddress, socket.remotePort, properties);
|
265
278
|
}
|
266
279
|
catch (e) {
|
267
280
|
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
@@ -1,10 +1,10 @@
|
|
1
1
|
{
|
2
2
|
"name": "@scrypted/server",
|
3
|
-
"version": "0.123.
|
3
|
+
"version": "0.123.9",
|
4
4
|
"description": "",
|
5
5
|
"dependencies": {
|
6
6
|
"@scrypted/ffmpeg-static": "^6.1.0-build3",
|
7
|
-
"@scrypted/node-pty": "^1.0.
|
7
|
+
"@scrypted/node-pty": "^1.0.22",
|
8
8
|
"@scrypted/types": "^0.3.66",
|
9
9
|
"adm-zip": "^0.5.16",
|
10
10
|
"body-parser": "^1.20.3",
|
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,14 @@ export function startClusterClient(mainFilename: string) {
|
|
170
170
|
rejectUnauthorized: false,
|
171
171
|
});
|
172
172
|
|
173
|
+
const { localAddress, localPort } = socket;
|
174
|
+
socket.on('secureConnect', () => {
|
175
|
+
console.log('Cluster server connected.', localAddress, localPort);
|
176
|
+
});
|
177
|
+
socket.on('close', () => {
|
178
|
+
console.log('Cluster server disconnected.', localAddress, localPort);
|
179
|
+
});
|
180
|
+
|
173
181
|
const peer = preparePeer(socket, 'client');
|
174
182
|
|
175
183
|
try {
|
@@ -278,6 +286,7 @@ export function startClusterClient(mainFilename: string) {
|
|
278
286
|
catch (e) {
|
279
287
|
peer.kill(e.message);
|
280
288
|
socket.destroy();
|
289
|
+
console.warn('Cluster client error:', localAddress, localPort, e);
|
281
290
|
}
|
282
291
|
await backoff;
|
283
292
|
}
|
@@ -289,6 +298,11 @@ export function createClusterServer(runtime: ScryptedRuntime, certificate: Retur
|
|
289
298
|
key: certificate.serviceKey,
|
290
299
|
cert: certificate.certificate,
|
291
300
|
}, (socket) => {
|
301
|
+
console.log('Cluster client connected.', socket.remoteAddress, socket.remotePort);
|
302
|
+
socket.on('close', () => {
|
303
|
+
console.log('Cluster client disconnected.', socket.remoteAddress, socket.remotePort);
|
304
|
+
});
|
305
|
+
|
292
306
|
const peer = preparePeer(socket, 'server');
|
293
307
|
|
294
308
|
const connectForkWorker: ConnectForkWorker = async (auth: ClusterObject, properties: ClusterWorkerProperties) => {
|
@@ -313,6 +327,7 @@ export function createClusterServer(runtime: ScryptedRuntime, certificate: Retur
|
|
313
327
|
socket.on('close', () => {
|
314
328
|
runtime.clusterWorkers.delete(worker);
|
315
329
|
});
|
330
|
+
console.log('Cluster client authenticated.', socket.remoteAddress, socket.remotePort, properties);
|
316
331
|
}
|
317
332
|
catch (e) {
|
318
333
|
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
|
}
|