@nsshunt/stsappframework 3.1.231 → 3.1.233
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/build.sh +0 -2
- package/dist/commonTypes.js +2 -38
- package/dist/commonTypes.js.map +1 -1
- package/dist/process/processbase.js.map +1 -1
- package/dist/process/serverprocessbase.js +39 -23
- package/dist/process/serverprocessbase.js.map +1 -1
- package/dist/process/singleprocessbase.js.map +1 -1
- package/dist/vitesttesting/appConfig.js +3 -1
- package/dist/vitesttesting/appConfig.js.map +1 -1
- package/dist/vitesttesting/appSingleWSS.js +100 -49
- package/dist/vitesttesting/appSingleWSS.js.map +1 -1
- package/dist/vitesttesting/singleservertest.test.js +155 -63
- package/dist/vitesttesting/singleservertest.test.js.map +1 -1
- package/package.json +4 -2
- package/src/commonTypes.ts +7 -85
- package/src/process/processbase.ts +5 -3
- package/src/process/serverprocessbase.ts +44 -23
- package/src/process/singleprocessbase.ts +1 -2
- package/src/vitesttesting/appConfig.ts +3 -1
- package/src/vitesttesting/appSingleWSS.ts +121 -58
- package/src/vitesttesting/singleservertest.test.ts +187 -70
- package/src/vitesttesting/wsevents.ts +12 -1
- package/types/commonTypes.d.ts +3 -54
- package/types/commonTypes.d.ts.map +1 -1
- package/types/process/processbase.d.ts +4 -2
- package/types/process/processbase.d.ts.map +1 -1
- package/types/process/serverprocessbase.d.ts +1 -1
- package/types/process/serverprocessbase.d.ts.map +1 -1
- package/types/process/singleprocessbase.d.ts.map +1 -1
- package/types/vitesttesting/appConfig.d.ts.map +1 -1
- package/types/vitesttesting/appSingleWSS.d.ts +2 -3
- package/types/vitesttesting/appSingleWSS.d.ts.map +1 -1
- package/types/vitesttesting/wsevents.d.ts +12 -1
- package/types/vitesttesting/wsevents.d.ts.map +1 -1
|
@@ -12,14 +12,15 @@ const appSingleWSS_1 = require("./appSingleWSS");
|
|
|
12
12
|
const appConfig_1 = require("./appConfig");
|
|
13
13
|
const stsconfig_1 = require("@nsshunt/stsconfig");
|
|
14
14
|
const vitest_1 = require("vitest");
|
|
15
|
-
const
|
|
16
|
-
const
|
|
15
|
+
const stssocketioutils_1 = require("@nsshunt/stssocketioutils");
|
|
16
|
+
const stssocketioutils_2 = require("@nsshunt/stssocketioutils");
|
|
17
17
|
//import { GenericContainer, Network, Wait } from "testcontainers";
|
|
18
18
|
const testcontainers_1 = require("testcontainers");
|
|
19
19
|
(0, vitest_1.describe)("Single Server Test", () => {
|
|
20
20
|
let app = null;
|
|
21
21
|
let ioRedisMessageProcessorUrl = '';
|
|
22
22
|
let ioRedisContainer = null;
|
|
23
|
+
let network;
|
|
23
24
|
const agentManager = new stsconfig_1.AgentManager({});
|
|
24
25
|
const endpoint = 'https://localhost';
|
|
25
26
|
const socketUtilsoptions = {
|
|
@@ -32,8 +33,8 @@ const testcontainers_1 = require("testcontainers");
|
|
|
32
33
|
rejectUnauthorized: stsconfig_1.goptions.isProduction // Allows self signed certs in non production mode(s)
|
|
33
34
|
}
|
|
34
35
|
};
|
|
35
|
-
const socketUtils = new
|
|
36
|
-
const instrumentManagerAddress = `${endpoint}:${stsconfig_1.goptions.rest01port}/${
|
|
36
|
+
const socketUtils = new stssocketioutils_1.SocketIoClientHelper(socketUtilsoptions);
|
|
37
|
+
const instrumentManagerAddress = `${endpoint}:${stsconfig_1.goptions.rest01port}/${stssocketioutils_2.STSNamespace.STSMonitor}/`;
|
|
37
38
|
const LogInfoMessage = (message) => console.log(chalk_1.default.green(`info: ${message}`));
|
|
38
39
|
const LogErrorMessage = (message) => console.error(chalk_1.default.red(`error: ${message}`));
|
|
39
40
|
const LogDebugMessage = (message) => console.log(chalk_1.default.blue(`debug: ${message}`));
|
|
@@ -76,29 +77,37 @@ const testcontainers_1 = require("testcontainers");
|
|
|
76
77
|
return null;
|
|
77
78
|
}
|
|
78
79
|
};
|
|
80
|
+
const StartNetwork = async () => {
|
|
81
|
+
network = await new testcontainers_1.Network().start();
|
|
82
|
+
};
|
|
83
|
+
const StopNetwork = async () => {
|
|
84
|
+
await network.stop();
|
|
85
|
+
};
|
|
79
86
|
const StartRedis = async () => {
|
|
80
87
|
ioRedisContainer = await new testcontainers_1.GenericContainer("redis/redis-stack-server")
|
|
81
88
|
.withEnvironment({
|
|
82
89
|
REDIS_ARGS: "--save \"\" --appendonly no",
|
|
83
90
|
})
|
|
84
91
|
.withExposedPorts(6379)
|
|
85
|
-
|
|
86
|
-
|
|
92
|
+
.withNetwork(network)
|
|
93
|
+
.withNetworkAliases("redisstackserver")
|
|
87
94
|
//.withWaitStrategy(Wait.forLogMessage(`Ready to accept connections tcp`))
|
|
88
95
|
.start();
|
|
89
96
|
ioRedisMessageProcessorUrl = `redis://${ioRedisContainer.getHost()}:${ioRedisContainer.getMappedPort(6379)}`;
|
|
90
97
|
await (0, stsutils_1.Sleep)(2000);
|
|
91
98
|
//expect(goptions.imRedisMessageProcessorUrl).toEqual('redis://localhost:6379');
|
|
92
99
|
// IM_REDIS_MESSAGE_PROCESSOR_URL
|
|
93
|
-
console.log(chalk_1.default.green(`redis/redis-stack-server Started.
|
|
100
|
+
console.log(chalk_1.default.green(`redis/redis-stack-server Started. docker [${ioRedisMessageProcessorUrl}]`));
|
|
94
101
|
};
|
|
95
102
|
const StopRedis = async () => {
|
|
96
103
|
await ioRedisContainer.stop();
|
|
97
104
|
await (0, stsutils_1.Sleep)(200);
|
|
98
105
|
};
|
|
99
106
|
(0, vitest_1.beforeAll)(async () => {
|
|
107
|
+
await StartNetwork();
|
|
100
108
|
await StartRedis();
|
|
101
109
|
process.env.IM_REDIS_MESSAGE_PROCESSOR_URL = ioRedisMessageProcessorUrl;
|
|
110
|
+
process.env.SOCKET_IO_REDIS_ADAPTOR_URL = ioRedisMessageProcessorUrl;
|
|
102
111
|
(0, stsconfig_1.$ResetOptions)();
|
|
103
112
|
const appOptions = (0, appConfig_1.ServiceConfigOptions)(false, true);
|
|
104
113
|
appOptions.processExitOnTerminate = false;
|
|
@@ -110,9 +119,11 @@ const testcontainers_1 = require("testcontainers");
|
|
|
110
119
|
agentManager.Terminate();
|
|
111
120
|
await (0, stsutils_1.Sleep)(500);
|
|
112
121
|
await app?.TerminateApplication();
|
|
113
|
-
await (0, stsutils_1.Sleep)(
|
|
122
|
+
await (0, stsutils_1.Sleep)(2000);
|
|
114
123
|
app = null;
|
|
115
124
|
await StopRedis();
|
|
125
|
+
await StopNetwork();
|
|
126
|
+
await (0, stsutils_1.Sleep)(2000);
|
|
116
127
|
}, 120000);
|
|
117
128
|
(0, vitest_1.test)('Testing Module', async () => {
|
|
118
129
|
vitest_1.expect.assertions(1);
|
|
@@ -129,66 +140,147 @@ const testcontainers_1 = require("testcontainers");
|
|
|
129
140
|
}
|
|
130
141
|
}, 10000);
|
|
131
142
|
(0, vitest_1.test)('client socket testing', async () => {
|
|
132
|
-
vitest_1.expect.assertions(
|
|
133
|
-
let
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
(0, vitest_1.expect)(
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
(
|
|
143
|
+
vitest_1.expect.assertions(29);
|
|
144
|
+
let connectCount = 0;
|
|
145
|
+
let subscribeAckCount = 0;
|
|
146
|
+
let unsubscribeAckCount = 0;
|
|
147
|
+
let subscribeKeepAliveAckCount = 0;
|
|
148
|
+
let doneAckCount = 0;
|
|
149
|
+
const SetupClient = async (clientName, joinRooms) => {
|
|
150
|
+
const socket = socketUtils.SetupClientSideSocket('STSUITerm',
|
|
151
|
+
// The address defines the namespace to connect to (i.e. io.of('/address'))
|
|
152
|
+
instrumentManagerAddress,
|
|
153
|
+
// Connected call back
|
|
154
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
155
|
+
(socket) => {
|
|
156
|
+
LogDebugMessage(chalk_1.default.green(`${clientName}: connected - 1`));
|
|
157
|
+
connectCount++;
|
|
158
|
+
(0, vitest_1.expect)(1).toEqual(1);
|
|
159
|
+
},
|
|
160
|
+
// Custom Events
|
|
161
|
+
(socket) => {
|
|
162
|
+
socket.on('subscribeAck', (data) => {
|
|
163
|
+
LogDebugMessage(chalk_1.default.yellow(`${clientName}: subscribeAck`));
|
|
164
|
+
subscribeAckCount++;
|
|
165
|
+
(0, vitest_1.expect)(data.data).toMatch(/(subject01|subject02)/i);
|
|
166
|
+
});
|
|
167
|
+
socket.on('unsubscribeAck', (data) => {
|
|
168
|
+
unsubscribeAckCount++;
|
|
169
|
+
LogDebugMessage(chalk_1.default.yellow(`${clientName}: unsubscribeAck`));
|
|
170
|
+
(0, vitest_1.expect)(data.data).toMatch(/(subject02)/i);
|
|
171
|
+
});
|
|
172
|
+
socket.on('subscribeKeepAliveAck', (data) => {
|
|
173
|
+
subscribeKeepAliveAckCount++;
|
|
174
|
+
LogDebugMessage(chalk_1.default.yellow(`${clientName}: subscribeKeepAliveAck`));
|
|
175
|
+
(0, vitest_1.expect)(data.data).toMatch(/(ok)/i);
|
|
176
|
+
});
|
|
177
|
+
socket.on('doneAck', async () => {
|
|
178
|
+
doneAckCount++;
|
|
179
|
+
LogDebugMessage(chalk_1.default.yellow(`${clientName}: doneAck`));
|
|
180
|
+
(0, vitest_1.expect)(1).toEqual(1);
|
|
181
|
+
});
|
|
182
|
+
socket.on('compute3', async (arg, cb) => {
|
|
183
|
+
LogDebugMessage(chalk_1.default.yellow(`${clientName}: compute3`));
|
|
184
|
+
cb({ arg, clientName });
|
|
185
|
+
});
|
|
186
|
+
socket.on('ServiceCommandGetThreads', async (arg) => {
|
|
187
|
+
LogDebugMessage(chalk_1.default.yellow(`${clientName}: ServiceCommandGetThreads: [${JSON.stringify(arg)}]`));
|
|
188
|
+
});
|
|
189
|
+
socket.on('ServiceCommandGetThreadsEx', async (arg, cb) => {
|
|
190
|
+
LogDebugMessage(chalk_1.default.green(`${clientName}: ServiceCommandGetThreadsEx: [${JSON.stringify(arg)}]`));
|
|
191
|
+
cb({ arg, clientName });
|
|
192
|
+
});
|
|
193
|
+
socket.on('GetThreadDetailsFromService', async (arg, cb) => {
|
|
194
|
+
LogDebugMessage(chalk_1.default.green(`${clientName}: ServiceCommandGetThreadsEx: [${JSON.stringify(arg)}]`));
|
|
195
|
+
cb({
|
|
196
|
+
threadData: { id: 'someid', extraData: 'someextradata' },
|
|
197
|
+
arg,
|
|
198
|
+
clientName
|
|
199
|
+
});
|
|
200
|
+
});
|
|
201
|
+
}, (error) => {
|
|
202
|
+
LogErrorMessage(`${clientName}: SetupClientSideSocket call back: [${error}]`);
|
|
152
203
|
});
|
|
153
|
-
socket.
|
|
154
|
-
|
|
155
|
-
|
|
204
|
+
socket.emit('__STSjoinRoom', joinRooms);
|
|
205
|
+
socket.emit('__STSjoinRoom', ['room1']).emit('__STSjoinRoom', ['room2']);
|
|
206
|
+
socket.emit('subscribe', { data: 'subject01 ' });
|
|
207
|
+
socket.emit('subscribe', { data: 'subject02 ' });
|
|
208
|
+
socket.emit('unsubscribe', { data: 'subject02 ' });
|
|
209
|
+
socket.emit('subscribeKeepAlive', { data: 'ok' });
|
|
210
|
+
socket.timeout(250).emit('compute', 10, (err, arg) => {
|
|
211
|
+
if (err) {
|
|
212
|
+
LogInfoMessage(err);
|
|
213
|
+
}
|
|
214
|
+
else {
|
|
215
|
+
console.log(`${clientName}: compute: [${chalk_1.default.magenta(JSON.stringify(arg))}]`);
|
|
216
|
+
(0, vitest_1.expect)(arg).toEqual('20');
|
|
217
|
+
}
|
|
156
218
|
});
|
|
157
|
-
socket.
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
219
|
+
socket.timeout(250).emit('compute2', 10, (err, arg) => {
|
|
220
|
+
if (err) {
|
|
221
|
+
LogInfoMessage(err);
|
|
222
|
+
}
|
|
223
|
+
else {
|
|
224
|
+
console.log(`${clientName}: compute2: [${chalk_1.default.magenta(JSON.stringify(arg))}]`);
|
|
225
|
+
(0, vitest_1.expect)(arg.data).toEqual(20);
|
|
226
|
+
}
|
|
162
227
|
});
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
else {
|
|
178
|
-
(0, vitest_1.expect)(arg).toEqual('20');
|
|
179
|
-
}
|
|
180
|
-
});
|
|
181
|
-
socket.timeout(250).emit('compute2', 10, (err, arg) => {
|
|
182
|
-
if (err) {
|
|
183
|
-
LogInfoMessage(err);
|
|
184
|
-
}
|
|
185
|
-
else {
|
|
186
|
-
(0, vitest_1.expect)(arg.data).toEqual(20);
|
|
187
|
-
}
|
|
228
|
+
return socket;
|
|
229
|
+
};
|
|
230
|
+
const client1 = await SetupClient('client1', ['service']);
|
|
231
|
+
const client2 = await SetupClient('client2', ['service', 'service_instance1']);
|
|
232
|
+
const client3 = await SetupClient('client3', ['service', 'service_instance2']);
|
|
233
|
+
await (0, stsutils_1.Sleep)(1000);
|
|
234
|
+
//client1.emit('broadcast');
|
|
235
|
+
//client2.emit('__STSsendToRoom', ['service'], { command: 'ServiceCommandGetThreads', payload: { room: 'service', somedata: 1 }});
|
|
236
|
+
client2.emit('__STSsendToRoomWithCB', ['service_instance1'], { command: 'ServiceCommandGetThreadsEx', payload: { room: 'service_instance1', somedata: 1 } });
|
|
237
|
+
client3.emit('GetThreadDetails', {
|
|
238
|
+
room: 'service_instance1',
|
|
239
|
+
threadInput: 500
|
|
240
|
+
}, (data) => {
|
|
241
|
+
console.log(chalk_1.default.magenta(JSON.stringify(data)));
|
|
188
242
|
});
|
|
189
|
-
|
|
243
|
+
const start = performance.now();
|
|
244
|
+
const promArray = [];
|
|
245
|
+
for (let i = 0; i < 20; i++) {
|
|
246
|
+
const prom = new Promise((res, rej) => {
|
|
247
|
+
try {
|
|
248
|
+
client1.emit('GetThreadDetails', {
|
|
249
|
+
room: 'service',
|
|
250
|
+
threadInput: 500,
|
|
251
|
+
iteration: i
|
|
252
|
+
}, (data) => {
|
|
253
|
+
console.log(chalk_1.default.rgb(100, 240, 20)(JSON.stringify(data)));
|
|
254
|
+
res(data);
|
|
255
|
+
});
|
|
256
|
+
}
|
|
257
|
+
catch (error) {
|
|
258
|
+
rej(error);
|
|
259
|
+
}
|
|
260
|
+
});
|
|
261
|
+
promArray.push(prom);
|
|
262
|
+
}
|
|
263
|
+
await Promise.all(promArray);
|
|
264
|
+
const end = performance.now();
|
|
265
|
+
console.log(chalk_1.default.magenta(`Total Time: [${end - start}]`));
|
|
266
|
+
await (0, stsutils_1.Sleep)(1000);
|
|
267
|
+
client1.emit('__STSsendToRoom', ['room3'], { command: 'doneAck', payload: { somedata: 1 } });
|
|
268
|
+
//while (!complete) {
|
|
269
|
+
while (doneAckCount < 3) {
|
|
190
270
|
await (0, stsutils_1.Sleep)(100);
|
|
191
271
|
}
|
|
192
|
-
|
|
272
|
+
await (0, stsutils_1.Sleep)(500);
|
|
273
|
+
console.log(chalk_1.default.green(`connectCount: [${connectCount}]`));
|
|
274
|
+
console.log(chalk_1.default.green(`subscribeAckCount: [${subscribeAckCount}]`));
|
|
275
|
+
console.log(chalk_1.default.green(`unsubscribeAckCount: [${unsubscribeAckCount}]`));
|
|
276
|
+
console.log(chalk_1.default.green(`subscribeKeepAliveAckCount: [${subscribeKeepAliveAckCount}]`));
|
|
277
|
+
console.log(chalk_1.default.green(`doneAckCount: [${doneAckCount}]`));
|
|
278
|
+
(0, vitest_1.expect)(connectCount).toEqual(3);
|
|
279
|
+
(0, vitest_1.expect)(subscribeAckCount).toEqual(6);
|
|
280
|
+
(0, vitest_1.expect)(unsubscribeAckCount).toEqual(3);
|
|
281
|
+
(0, vitest_1.expect)(subscribeKeepAliveAckCount).toEqual(3);
|
|
282
|
+
(0, vitest_1.expect)(doneAckCount).toEqual(3);
|
|
283
|
+
console.log(chalk_1.default.green(`All Done...`));
|
|
284
|
+
}, 60000);
|
|
193
285
|
});
|
|
194
286
|
//# sourceMappingURL=singleservertest.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"singleservertest.test.js","sourceRoot":"","sources":["../../src/vitesttesting/singleservertest.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"singleservertest.test.js","sourceRoot":"","sources":["../../src/vitesttesting/singleservertest.test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nsshunt/stsappframework",
|
|
3
|
-
"version": "3.1.
|
|
3
|
+
"version": "3.1.233",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "./types/index.d.ts",
|
|
@@ -47,9 +47,11 @@
|
|
|
47
47
|
"dependencies": {
|
|
48
48
|
"@nsshunt/stsconfig": "^1.25.167",
|
|
49
49
|
"@nsshunt/stsdatamanagement": "^1.18.83",
|
|
50
|
-
"@nsshunt/stsobservability": "^1.0.
|
|
50
|
+
"@nsshunt/stsobservability": "^1.0.84",
|
|
51
|
+
"@nsshunt/stssocketioutils": "^1.0.3",
|
|
51
52
|
"@nsshunt/stsutils": "^1.16.91",
|
|
52
53
|
"@socket.io/cluster-adapter": "^0.2.2",
|
|
54
|
+
"@socket.io/redis-adapter": "^8.3.0",
|
|
53
55
|
"@socket.io/redis-streams-adapter": "^0.2.2",
|
|
54
56
|
"@types/on-headers": "^1.0.3",
|
|
55
57
|
"@types/pidusage": "^2.0.5",
|
package/src/commonTypes.ts
CHANGED
|
@@ -1,15 +1,19 @@
|
|
|
1
1
|
/* eslint @typescript-eslint/no-explicit-any: 0 */ // --> OFF
|
|
2
|
-
import { Server, Socket, Namespace } from "socket.io";
|
|
3
2
|
import express from 'express'
|
|
4
3
|
|
|
5
4
|
import { JSONObject, ISTSLogger, ModelDelimeter, CheckValidChar } from "@nsshunt/stsutils"
|
|
6
|
-
import { PublishInstrumentController, InstrumentDefinitions,
|
|
7
|
-
|
|
5
|
+
import { PublishInstrumentController, InstrumentDefinitions,
|
|
6
|
+
IContextBase, InstrumentBaseTelemetry, Gauge} from '@nsshunt/stsobservability'
|
|
7
|
+
|
|
8
|
+
import { STSDefaultClientToServerEvents, STSDefaultServerToClientEvents } from '@nsshunt/stssocketioutils'
|
|
9
|
+
|
|
8
10
|
import { IDBAccessLayer } from '@nsshunt/stsdatamanagement'
|
|
9
11
|
import { TinyEmitter } from "tiny-emitter";
|
|
10
12
|
|
|
11
13
|
import { Worker, Address } from 'node:cluster'
|
|
12
14
|
|
|
15
|
+
import { ISocketIoServerHelper } from '@nsshunt/stssocketioutils'
|
|
16
|
+
|
|
13
17
|
export interface IServiceProcessContext extends IContextBase {
|
|
14
18
|
serviceId?: string // Service name and the service version
|
|
15
19
|
|
|
@@ -171,88 +175,6 @@ export interface IWorkerProcessBase extends IServerProcessBase {
|
|
|
171
175
|
|
|
172
176
|
// -----------------------------------------------------------------------------
|
|
173
177
|
|
|
174
|
-
export type ServerEventCb = (socket: any, data: any) => void
|
|
175
|
-
|
|
176
|
-
export interface ServerSocketEvent {
|
|
177
|
-
serverEventName: string,
|
|
178
|
-
serverEventCb: ServerEventCb
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
export enum STSNamespace {
|
|
182
|
-
STSMonitor = 'stsinstrumentmanager/stsmonitor',
|
|
183
|
-
STSControl = 'stsinstrumentmanager/stscontrol'
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
export enum STSRoom {
|
|
187
|
-
// STSMonitor rooms
|
|
188
|
-
STSInstrumentDataRoom = 'stsinstrumentdataroom', // This room is for all instrument data messages
|
|
189
|
-
STSInstrumentDataSubscriptionRoom = 'stsinstrumentdatasubscriptionroom', // This room is only for subscribed instrument data messages
|
|
190
|
-
|
|
191
|
-
// STSControl rooms
|
|
192
|
-
STSRunnerRoom = 'stsrunnerroom',
|
|
193
|
-
STSNodeRunnerRoom = 'stsnoderunnerroom'
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
export enum STSEvent {
|
|
197
|
-
// STSInstrumentData
|
|
198
|
-
STSInstrumentData = 'stsinstrumentdata',
|
|
199
|
-
STSSubInstrumentData = 'stssubinstrumentdata', // sub-scribed instrument data. This only outputs the nodes that have been subscribed by the client(s).
|
|
200
|
-
STSResetInstrumentData = 'stsresetinstrumentdata',
|
|
201
|
-
|
|
202
|
-
STSStartLoggingInstrumentData = 'stsStartLoggingInstrumentData',
|
|
203
|
-
STSStopLoggingInstrumentData = 'stsStopLoggingInstrumentData',
|
|
204
|
-
|
|
205
|
-
// STSRunner events
|
|
206
|
-
STSStart = 'stsstart', // Start a test run with options as payload.
|
|
207
|
-
STSStop = 'stsstop', // Stop test run(s).
|
|
208
|
-
STSPause = 'stspause', // Pause test run(s).
|
|
209
|
-
STSResume = 'stsresume', // Resume test run(s).
|
|
210
|
-
STSTerminate = 'ststerminate', // Terminate runner instances and exit applications.
|
|
211
|
-
// This may also be uysed to force trigger self healing (i.e. auto re-start) when
|
|
212
|
-
// running within a container orchestrator such as K8, K3 or Docker Swarm.
|
|
213
|
-
STSUpdateStaticConfig = 'stsupdatestaticconfig', // Update base configuration. Options as payload.
|
|
214
|
-
STSUpdateDynamicConfig = 'stsupdatedynamicconfig', // Update running configuration. This is used
|
|
215
|
-
// to control the runnning behaviour of test(s) in-flight. Options as payload.
|
|
216
|
-
|
|
217
|
-
STSSendToRoom = 'sendToRoom',
|
|
218
|
-
|
|
219
|
-
// Standard socket events
|
|
220
|
-
connect = 'connect'
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
// https://socket.io/docs/v4/typescript/
|
|
224
|
-
|
|
225
|
-
export interface InterServerEvents {
|
|
226
|
-
ping: () => void;
|
|
227
|
-
}
|
|
228
|
-
|
|
229
|
-
export interface STSSocketIONamespace {
|
|
230
|
-
namespace: string
|
|
231
|
-
pid: number
|
|
232
|
-
socketionamespace: Namespace<STSDefaultClientToServerEvents, STSDefaultServerToClientEvents, InterServerEvents>
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
export type STSSocketIONamespaces = Record<string, STSSocketIONamespace>;
|
|
236
|
-
|
|
237
|
-
export type STSServerSocket = Socket<STSDefaultClientToServerEvents, STSDefaultServerToClientEvents, InterServerEvents>
|
|
238
|
-
export type STSClientSocket = Socket<STSDefaultServerToClientEvents, STSDefaultClientToServerEvents, InterServerEvents>
|
|
239
|
-
|
|
240
|
-
export interface ISocketIoServerHelper<ClientToServerEvents extends STSDefaultClientToServerEvents, ServerToClientEvents extends STSDefaultServerToClientEvents>
|
|
241
|
-
{
|
|
242
|
-
LogMessage: (namespace: STSSocketIONamespace, message: string) => void
|
|
243
|
-
LeaveRoom: (namespace: STSSocketIONamespace, socket: STSServerSocket, room: STSRoom) => void
|
|
244
|
-
JoinRoom: (namespace: STSSocketIONamespace, socket: STSServerSocket, room: STSRoom) => void
|
|
245
|
-
SetupNamespace: (io: Server, namespace: STSNamespace, rooms: string[], autoJoinRooms: boolean,
|
|
246
|
-
/* serverSocketEvents: ServerSocketEvent[], */
|
|
247
|
-
socketConnectCallBack: ((socket: Socket<ClientToServerEvents, ServerToClientEvents, InterServerEvents>) => void) | null,
|
|
248
|
-
socketEventsCallBack: ((socket: Socket<ClientToServerEvents, ServerToClientEvents, InterServerEvents>) => void) | null
|
|
249
|
-
) => Namespace<ClientToServerEvents, ServerToClientEvents, InterServerEvents>
|
|
250
|
-
GetSTSSocketIONamespace: (namespace: any) => STSSocketIONamespace
|
|
251
|
-
GetSTSSocketIONamespaces: () => STSSocketIONamespaces
|
|
252
|
-
DisconnectSockets: () => void
|
|
253
|
-
SetupEvent(event: ClientToServerEvents, eventCb: ServerEventCb): ISocketIoServerHelper<ClientToServerEvents, ServerToClientEvents>
|
|
254
|
-
}
|
|
255
|
-
|
|
256
178
|
/*
|
|
257
179
|
export interface IInfluxDBManagerOptions {
|
|
258
180
|
token: string // API access token
|
|
@@ -17,15 +17,17 @@ import { JSONObject } from '@nsshunt/stsutils'
|
|
|
17
17
|
import { StatusCodes } from 'http-status-codes'
|
|
18
18
|
|
|
19
19
|
import { PublishInstrumentController, IPublishInstrumentControllerOptions, InstrumentDefinitions,
|
|
20
|
-
TransportType, IPublishTransportRESTServerOptions,
|
|
21
|
-
STSDefaultClientToServerEvents, STSDefaultServerToClientEvents, GetInstruments } from '@nsshunt/stsobservability'
|
|
20
|
+
TransportType, IPublishTransportRESTServerOptions, GetInstruments } from '@nsshunt/stsobservability'
|
|
22
21
|
|
|
22
|
+
import { STSDefaultClientToServerEvents, STSDefaultServerToClientEvents } from '@nsshunt/stssocketioutils'
|
|
23
23
|
import os from 'os';
|
|
24
24
|
|
|
25
|
-
import { IProcessBase,
|
|
25
|
+
import { IProcessBase, CreateServiceProcessContext, ProcessOptions, IProcessBaseEvents } from './../commonTypes'
|
|
26
26
|
|
|
27
27
|
import { TinyEmitter } from 'tiny-emitter';
|
|
28
28
|
|
|
29
|
+
import { ISocketIoServerHelper } from '@nsshunt/stssocketioutils'
|
|
30
|
+
|
|
29
31
|
export abstract class ProcessBase extends TinyEmitter implements IProcessBase
|
|
30
32
|
{
|
|
31
33
|
#options: ProcessOptions;
|
|
@@ -5,9 +5,6 @@ import { goptions } from '@nsshunt/stsconfig'
|
|
|
5
5
|
|
|
6
6
|
import fs from 'node:fs'
|
|
7
7
|
|
|
8
|
-
import { createAdapter as clusterCreateAdapter } from '@socket.io/cluster-adapter'
|
|
9
|
-
import { createAdapter } from "@socket.io/redis-streams-adapter";
|
|
10
|
-
|
|
11
8
|
import { JSONObject, Sleep } from '@nsshunt/stsutils'
|
|
12
9
|
|
|
13
10
|
import { ProcessOptions, IServerProcessBase } from './../commonTypes'
|
|
@@ -24,7 +21,14 @@ import { Server, ServerOptions } from "socket.io";
|
|
|
24
21
|
import { STSExpressServer } from './../stsexpressserver'
|
|
25
22
|
import { Express } from 'express'
|
|
26
23
|
|
|
24
|
+
import { createAdapter as clusterCreateAdapter } from '@socket.io/cluster-adapter'
|
|
25
|
+
import { createAdapter } from "@socket.io/redis-streams-adapter";
|
|
26
|
+
//import { ClusterAdapterWithHeartbeat } from 'socket.io-adaptor';
|
|
27
|
+
|
|
28
|
+
//import { createAdapter } from "@socket.io/redis-adapter";
|
|
29
|
+
|
|
27
30
|
import { createClient, RedisClientType } from 'redis';
|
|
31
|
+
import { Redis } from 'ioredis';
|
|
28
32
|
|
|
29
33
|
import jayson from 'jayson'
|
|
30
34
|
|
|
@@ -39,7 +43,7 @@ export abstract class ServerProcessBase extends ProcessBase implements IServerPr
|
|
|
39
43
|
{
|
|
40
44
|
#masterProcessExitTime = goptions.masterProcessExitTime;
|
|
41
45
|
#io: Server | null = null;
|
|
42
|
-
#redisClient: RedisClientType | null = null;
|
|
46
|
+
#redisClient: RedisClientType | Redis | null = null;
|
|
43
47
|
#httpServer: any = null;
|
|
44
48
|
#expressServer: STSExpressServer | null = null;
|
|
45
49
|
#sockets: net.Socket[] = [ ];
|
|
@@ -163,25 +167,29 @@ export abstract class ServerProcessBase extends ProcessBase implements IServerPr
|
|
|
163
167
|
//this.#io = require("socket.io")(this.#httpServer, options);
|
|
164
168
|
this.#io = new Server(this.#httpServer, options);
|
|
165
169
|
|
|
166
|
-
if (this.options.
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
this.#redisClient = createClient({url: this.options.socketIoRedisAdaptorUrl});
|
|
172
|
-
} else {
|
|
173
|
-
this.LogInfoMessage(`Redis url: [localhost]`);
|
|
174
|
-
this.#redisClient = createClient();
|
|
175
|
-
}
|
|
176
|
-
await this.#redisClient.connect();
|
|
177
|
-
this.#io.adapter(createAdapter(this.#redisClient) as any);
|
|
178
|
-
this.LogInfoMessage(`Redis successfully connected.`);
|
|
170
|
+
if (this.options.useSocketIoRedisAdaptor) {
|
|
171
|
+
this.LogInfoMessage(`Using Redis for socket.io cluster management (worker)`);
|
|
172
|
+
if (this.options.socketIoRedisAdaptorUrl) {
|
|
173
|
+
this.LogInfoMessage(`Redis url: [${this.options.socketIoRedisAdaptorUrl}]`);
|
|
174
|
+
this.#redisClient = createClient({url: this.options.socketIoRedisAdaptorUrl});
|
|
179
175
|
} else {
|
|
176
|
+
this.LogInfoMessage(`Redis url: [localhost]`);
|
|
177
|
+
this.#redisClient = createClient();
|
|
178
|
+
}
|
|
179
|
+
await this.#redisClient.connect();
|
|
180
|
+
|
|
181
|
+
//this.#redisClient = new Redis(this.options.socketIoRedisAdaptorUrl as string);
|
|
182
|
+
|
|
183
|
+
this.#io.adapter(createAdapter(this.#redisClient));
|
|
184
|
+
|
|
185
|
+
this.LogInfoMessage(`Redis successfully connected.`);
|
|
186
|
+
} else {
|
|
187
|
+
if (this.options.clusterMode) {
|
|
180
188
|
this.#io.adapter(clusterCreateAdapter() as any);
|
|
181
189
|
this.LogInfoMessage(`Using nodejs cluster mode for socket.io cluster management`);
|
|
190
|
+
} else {
|
|
191
|
+
this.LogInfoMessage(`Not using any adaptors for socket.io cluster management.}`);
|
|
182
192
|
}
|
|
183
|
-
} else {
|
|
184
|
-
this.LogInfoMessage(`Not using any adaptors for socket.io cluster management.}`);
|
|
185
193
|
}
|
|
186
194
|
|
|
187
195
|
// To use a seperate socket server, the code below can be applied.
|
|
@@ -255,18 +263,31 @@ export abstract class ServerProcessBase extends ProcessBase implements IServerPr
|
|
|
255
263
|
return this.#shuttingDown;
|
|
256
264
|
}
|
|
257
265
|
|
|
258
|
-
TerminateSocketIO = () => {
|
|
266
|
+
TerminateSocketIO = async (): Promise<void> => {
|
|
259
267
|
if (this.options.wssServer === true && this.#io !== null) {
|
|
260
268
|
const logPrefix = `ServerProcessBase:TerminateSockets():${process.pid}:`;
|
|
261
269
|
this.LogInfoMessage(`${logPrefix} Disconnect SocketIO Sockets.`);
|
|
270
|
+
await Sleep(250);
|
|
271
|
+
await this.#io?.of('/').adapter.close();
|
|
262
272
|
if (this.socketIoServerHelper !== null) {
|
|
263
|
-
this.socketIoServerHelper.
|
|
273
|
+
await this.socketIoServerHelper.CloseAdaptors();
|
|
274
|
+
await Sleep(50);
|
|
275
|
+
if (this.#redisClient) {
|
|
276
|
+
this.#redisClient.disconnect();
|
|
277
|
+
await Sleep(50);
|
|
278
|
+
}
|
|
279
|
+
this.LogInfoMessage(`${logPrefix} this.socketIoServerHelper.DisconnectSockets()`);
|
|
280
|
+
await this.socketIoServerHelper.DisconnectSockets();
|
|
264
281
|
} else {
|
|
282
|
+
this.LogInfoMessage(`${logPrefix} this.#io.disconnectSockets()`);
|
|
283
|
+
if (this.#redisClient) {
|
|
284
|
+
this.#redisClient.disconnect();
|
|
285
|
+
await Sleep(50);
|
|
286
|
+
}
|
|
265
287
|
this.#io.disconnectSockets();
|
|
266
288
|
}
|
|
267
289
|
this.socketIoServerHelper = null;
|
|
268
290
|
this.#io = null;
|
|
269
|
-
// Note that this.#redisClient.disconnect() is not required becuase DisconnectSockets performs this action.
|
|
270
291
|
}
|
|
271
292
|
}
|
|
272
293
|
|
|
@@ -308,7 +329,7 @@ export abstract class ServerProcessBase extends ProcessBase implements IServerPr
|
|
|
308
329
|
|
|
309
330
|
this.TerminateUIController();
|
|
310
331
|
|
|
311
|
-
this.TerminateSocketIO();
|
|
332
|
+
await this.TerminateSocketIO();
|
|
312
333
|
|
|
313
334
|
await this.TerminateHTTPServer();
|
|
314
335
|
|
|
@@ -82,7 +82,9 @@ export function ServiceConfigOptions(clusterMode: boolean, isMaster: boolean): P
|
|
|
82
82
|
instrumentationObservationInterval: goptions.instrumentationObservationInterval,
|
|
83
83
|
instrumentationTimeWindow: goptions.instrumentationTimeWindow,
|
|
84
84
|
|
|
85
|
-
useSocketIoRedisAdaptor:
|
|
85
|
+
useSocketIoRedisAdaptor: true,
|
|
86
|
+
socketIoRedisAdaptorUrl: goptions.socketIoRedisAdaptorUrl,
|
|
87
|
+
//socketIoRedisAdaptorUrl: 'redis://192.168.50.5:6379',
|
|
86
88
|
//workerExec: './dist/testing/app.js',
|
|
87
89
|
|
|
88
90
|
logger: logger,
|