@nsshunt/stsappframework 3.1.231 → 3.1.232

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.
@@ -20,6 +20,7 @@ const testcontainers_1 = require("testcontainers");
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 = {
@@ -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
- //.withNetwork(this.#network)
86
- //.withNetworkAliases("redisstackserver")
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. Server Details: ioRedisMessageProcessorUrl: [${ioRedisMessageProcessorUrl}]`));
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)(1000);
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(8);
133
- let complete = false;
134
- const socket = socketUtils.SetupClientSideSocket('STSUITerm',
135
- // The address defines the namespace to connect to (i.e. io.of('/address'))
136
- instrumentManagerAddress,
137
- // Connected call back
138
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
139
- (socket) => {
140
- LogDebugMessage(chalk_1.default.green(`connected - 1`));
141
- (0, vitest_1.expect)(1).toEqual(1);
142
- },
143
- // Custom Events
144
- (socket) => {
145
- socket.on('subscribeAck', (data) => {
146
- LogDebugMessage(chalk_1.default.yellow('subscribeAck'));
147
- (0, vitest_1.expect)(data.data).toMatch(/(subject01|subject02)/i);
148
- });
149
- socket.on('unsubscribeAck', (data) => {
150
- LogDebugMessage(chalk_1.default.yellow('unsubscribeAck'));
151
- (0, vitest_1.expect)(data.data).toMatch(/(subject02)/i);
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.on('subscribeKeepAliveAck', (data) => {
154
- LogDebugMessage(chalk_1.default.yellow('subscribeKeepAliveAck'));
155
- (0, vitest_1.expect)(data.data).toMatch(/(ok)/i);
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.on('doneAck', async () => {
158
- LogDebugMessage(chalk_1.default.yellow('doneAck'));
159
- (0, vitest_1.expect)(1).toEqual(1);
160
- await (0, stsutils_1.Sleep)(500);
161
- complete = true;
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
- }, (error) => {
164
- LogErrorMessage(`SetupClientSideSocket call back: [${error}]`);
165
- });
166
- socket.emit('__STSjoinRoom', ['room1']).emit('__STSjoinRoom', ['room2']);
167
- socket.emit('subscribe', { data: 'subject01 ' });
168
- socket.emit('subscribe', { data: 'subject02 ' });
169
- socket.emit('unsubscribe', { data: 'subject02 ' });
170
- socket.emit('subscribeKeepAlive', { data: 'ok' });
171
- socket.emit('__STSsendToRoom', ['room3'], { command: 'doneAck', payload: { somedata: 1 } });
172
- //socket.emit('done');
173
- socket.timeout(250).emit('compute', 10, (err, arg) => {
174
- if (err) {
175
- LogInfoMessage(err);
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
- while (!complete) {
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
- }, 3000);
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.231",
3
+ "version": "3.1.232",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "./types/index.d.ts",
@@ -47,9 +47,10 @@
47
47
  "dependencies": {
48
48
  "@nsshunt/stsconfig": "^1.25.167",
49
49
  "@nsshunt/stsdatamanagement": "^1.18.83",
50
- "@nsshunt/stsobservability": "^1.0.80",
50
+ "@nsshunt/stsobservability": "^1.0.83",
51
51
  "@nsshunt/stsutils": "^1.16.91",
52
52
  "@socket.io/cluster-adapter": "^0.2.2",
53
+ "@socket.io/redis-adapter": "^8.3.0",
53
54
  "@socket.io/redis-streams-adapter": "^0.2.2",
54
55
  "@types/on-headers": "^1.0.3",
55
56
  "@types/pidusage": "^2.0.5",
@@ -251,6 +251,7 @@ export interface ISocketIoServerHelper<ClientToServerEvents extends STSDefaultCl
251
251
  GetSTSSocketIONamespaces: () => STSSocketIONamespaces
252
252
  DisconnectSockets: () => void
253
253
  SetupEvent(event: ClientToServerEvents, eventCb: ServerEventCb): ISocketIoServerHelper<ClientToServerEvents, ServerToClientEvents>
254
+ CloseAdaptors: () => Promise<void>
254
255
  }
255
256
 
256
257
  /*
@@ -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,12 +21,21 @@ 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
 
31
35
  import { STSTransportLoggerWinston } from './../logger/stsTransportLoggerWinston'
32
36
 
37
+ import { STSNamespace } from './../commonTypes'
38
+
33
39
  /**
34
40
  * todo
35
41
  * @typedef {Object} options - todo
@@ -39,7 +45,7 @@ export abstract class ServerProcessBase extends ProcessBase implements IServerPr
39
45
  {
40
46
  #masterProcessExitTime = goptions.masterProcessExitTime;
41
47
  #io: Server | null = null;
42
- #redisClient: RedisClientType | null = null;
48
+ #redisClient: RedisClientType | Redis | null = null;
43
49
  #httpServer: any = null;
44
50
  #expressServer: STSExpressServer | null = null;
45
51
  #sockets: net.Socket[] = [ ];
@@ -163,25 +169,29 @@ export abstract class ServerProcessBase extends ProcessBase implements IServerPr
163
169
  //this.#io = require("socket.io")(this.#httpServer, options);
164
170
  this.#io = new Server(this.#httpServer, options);
165
171
 
166
- if (this.options.clusterMode) {
167
- if (this.options.useSocketIoRedisAdaptor) {
168
- this.LogInfoMessage(`Using Redis for socket.io cluster management (worker)`);
169
- if (this.options.socketIoRedisAdaptorUrl) {
170
- this.LogInfoMessage(`Redis url: [${this.options.socketIoRedisAdaptorUrl}]`);
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.`);
172
+ if (this.options.useSocketIoRedisAdaptor) {
173
+ this.LogInfoMessage(`Using Redis for socket.io cluster management (worker)`);
174
+ if (this.options.socketIoRedisAdaptorUrl) {
175
+ this.LogInfoMessage(`Redis url: [${this.options.socketIoRedisAdaptorUrl}]`);
176
+ this.#redisClient = createClient({url: this.options.socketIoRedisAdaptorUrl});
179
177
  } else {
178
+ this.LogInfoMessage(`Redis url: [localhost]`);
179
+ this.#redisClient = createClient();
180
+ }
181
+ await this.#redisClient.connect();
182
+
183
+ //this.#redisClient = new Redis(this.options.socketIoRedisAdaptorUrl as string);
184
+
185
+ this.#io.adapter(createAdapter(this.#redisClient));
186
+
187
+ this.LogInfoMessage(`Redis successfully connected.`);
188
+ } else {
189
+ if (this.options.clusterMode) {
180
190
  this.#io.adapter(clusterCreateAdapter() as any);
181
191
  this.LogInfoMessage(`Using nodejs cluster mode for socket.io cluster management`);
192
+ } else {
193
+ this.LogInfoMessage(`Not using any adaptors for socket.io cluster management.}`);
182
194
  }
183
- } else {
184
- this.LogInfoMessage(`Not using any adaptors for socket.io cluster management.}`);
185
195
  }
186
196
 
187
197
  // To use a seperate socket server, the code below can be applied.
@@ -255,18 +265,31 @@ export abstract class ServerProcessBase extends ProcessBase implements IServerPr
255
265
  return this.#shuttingDown;
256
266
  }
257
267
 
258
- TerminateSocketIO = () => {
268
+ TerminateSocketIO = async (): Promise<void> => {
259
269
  if (this.options.wssServer === true && this.#io !== null) {
260
270
  const logPrefix = `ServerProcessBase:TerminateSockets():${process.pid}:`;
261
271
  this.LogInfoMessage(`${logPrefix} Disconnect SocketIO Sockets.`);
272
+ await Sleep(250);
273
+ await this.#io?.of('/').adapter.close();
262
274
  if (this.socketIoServerHelper !== null) {
263
- this.socketIoServerHelper.DisconnectSockets();
275
+ await this.socketIoServerHelper.CloseAdaptors();
276
+ await Sleep(50);
277
+ if (this.#redisClient) {
278
+ this.#redisClient.disconnect();
279
+ await Sleep(50);
280
+ }
281
+ this.LogInfoMessage(`${logPrefix} this.socketIoServerHelper.DisconnectSockets()`);
282
+ await this.socketIoServerHelper.DisconnectSockets();
264
283
  } else {
284
+ this.LogInfoMessage(`${logPrefix} this.#io.disconnectSockets()`);
285
+ if (this.#redisClient) {
286
+ this.#redisClient.disconnect();
287
+ await Sleep(50);
288
+ }
265
289
  this.#io.disconnectSockets();
266
290
  }
267
291
  this.socketIoServerHelper = null;
268
292
  this.#io = null;
269
- // Note that this.#redisClient.disconnect() is not required becuase DisconnectSockets performs this action.
270
293
  }
271
294
  }
272
295
 
@@ -308,7 +331,7 @@ export abstract class ServerProcessBase extends ProcessBase implements IServerPr
308
331
 
309
332
  this.TerminateUIController();
310
333
 
311
- this.TerminateSocketIO();
334
+ await this.TerminateSocketIO();
312
335
 
313
336
  await this.TerminateHTTPServer();
314
337
 
@@ -57,8 +57,7 @@ export class SingleProcessBase extends ServerProcessBase implements ISingleProce
57
57
  return true;
58
58
  }
59
59
 
60
- async TerminateApplication()
61
- {
60
+ async TerminateApplication() {
62
61
  await this.Terminate(false, 'SIGINT');
63
62
  }
64
63
  }
@@ -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: false,
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,