@futdevpro/nts-dynamo 1.9.26 → 1.9.29
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/_collections/global-settings.const.d.ts.map +1 -1
- package/build/_collections/global-settings.const.js +1 -0
- package/build/_collections/global-settings.const.js.map +1 -1
- package/build/_models/control-models/endpoint-params.control-model.d.ts +2 -0
- package/build/_models/control-models/endpoint-params.control-model.d.ts.map +1 -1
- package/build/_models/control-models/endpoint-params.control-model.js +34 -20
- package/build/_models/control-models/endpoint-params.control-model.js.map +1 -1
- package/build/_models/interfaces/global-log-settings.interface.d.ts +4 -0
- package/build/_models/interfaces/global-log-settings.interface.d.ts.map +1 -1
- package/build/_modules/mock/socket-client.mock.d.ts +4 -4
- package/build/_modules/mock/socket-client.mock.d.ts.map +1 -1
- package/build/_modules/mock/socket-client.mock.js +4 -5
- package/build/_modules/mock/socket-client.mock.js.map +1 -1
- package/build/_modules/mock/socket-server.mock.d.ts +3 -3
- package/build/_modules/mock/socket-server.mock.d.ts.map +1 -1
- package/build/_modules/mock/socket-server.mock.js +2 -2
- package/build/_modules/mock/socket-server.mock.js.map +1 -1
- package/build/_modules/socket/_models/socket-client-service-params.control-model.d.ts +2 -8
- package/build/_modules/socket/_models/socket-client-service-params.control-model.d.ts.map +1 -1
- package/build/_modules/socket/_models/socket-client-service-params.control-model.js +4 -12
- package/build/_modules/socket/_models/socket-client-service-params.control-model.js.map +1 -1
- package/build/_modules/socket/_models/socket-presence.control-model.d.ts +5 -4
- package/build/_modules/socket/_models/socket-presence.control-model.d.ts.map +1 -1
- package/build/_modules/socket/_models/socket-presence.control-model.js +10 -8
- package/build/_modules/socket/_models/socket-presence.control-model.js.map +1 -1
- package/build/_modules/socket/_services/socket-client.service.d.ts +6 -6
- package/build/_modules/socket/_services/socket-client.service.d.ts.map +1 -1
- package/build/_modules/socket/_services/socket-client.service.js +20 -17
- package/build/_modules/socket/_services/socket-client.service.js.map +1 -1
- package/build/_modules/socket/_services/socket-server.service.d.ts +18 -18
- package/build/_modules/socket/_services/socket-server.service.d.ts.map +1 -1
- package/build/_modules/socket/_services/socket-server.service.js +79 -68
- package/build/_modules/socket/_services/socket-server.service.js.map +1 -1
- package/build/_modules/socket/index.d.ts +0 -2
- package/build/_modules/socket/index.d.ts.map +1 -1
- package/build/_modules/socket/index.js +0 -2
- package/build/_modules/socket/index.js.map +1 -1
- package/build/_modules/usage/usage.data-service.js +1 -1
- package/build/_modules/usage/usage.data-service.js.map +1 -1
- package/build/_services/base/data.service.js +4 -4
- package/build/_services/base/data.service.js.map +1 -1
- package/build/_services/base/db.service.js +3 -3
- package/build/_services/base/db.service.js.map +1 -1
- package/build/_services/core/email.service.js +1 -1
- package/build/_services/core/email.service.js.map +1 -1
- package/build/_services/server/app.server.d.ts +1 -1
- package/build/_services/server/app.server.d.ts.map +1 -1
- package/build/_services/server/app.server.js +1 -1
- package/build/_services/server/app.server.js.map +1 -1
- package/package.json +9 -19
- package/src/_collections/global-settings.const.ts +1 -0
- package/src/_models/control-models/endpoint-params.control-model.ts +51 -31
- package/src/_models/interfaces/global-log-settings.interface.ts +5 -0
- package/src/_modules/mock/socket-client.mock.ts +7 -7
- package/src/_modules/mock/socket-server.mock.ts +5 -4
- package/src/_modules/socket/_models/socket-client-service-params.control-model.ts +6 -15
- package/src/_modules/socket/_models/socket-presence.control-model.ts +13 -11
- package/src/_modules/socket/_services/socket-client.service.ts +30 -23
- package/src/_modules/socket/_services/socket-server.service.ts +129 -109
- package/src/_modules/socket/index.ts +0 -2
- package/src/_modules/usage/usage.data-service.ts +1 -1
- package/src/_services/base/data.service.ts +4 -4
- package/src/_services/base/db.service.ts +3 -3
- package/src/_services/core/email.service.ts +1 -1
- package/src/_services/server/app.server.ts +2 -2
- package/build/_modules/socket/_enums/socket-event-key.enum.d.ts +0 -15
- package/build/_modules/socket/_enums/socket-event-key.enum.d.ts.map +0 -1
- package/build/_modules/socket/_enums/socket-event-key.enum.js +0 -19
- package/build/_modules/socket/_enums/socket-event-key.enum.js.map +0 -1
- package/build/_modules/socket/_models/socket-event.control-model.d.ts +0 -61
- package/build/_modules/socket/_models/socket-event.control-model.d.ts.map +0 -1
- package/build/_modules/socket/_models/socket-event.control-model.js +0 -90
- package/build/_modules/socket/_models/socket-event.control-model.js.map +0 -1
- package/src/_modules/socket/_enums/socket-event-key.enum.ts +0 -18
- package/src/_modules/socket/_models/socket-event.control-model.ts +0 -150
|
@@ -156,12 +156,24 @@ export class DyNTS_Endpoint_Params {
|
|
|
156
156
|
DyFM_Log.info(msg);
|
|
157
157
|
}
|
|
158
158
|
}
|
|
159
|
-
|
|
160
159
|
} catch (error) {
|
|
161
160
|
this.error(req, res, error, issuer);
|
|
162
161
|
}
|
|
163
162
|
}
|
|
164
163
|
|
|
164
|
+
private logStackLocation(): void {
|
|
165
|
+
let stack: string = new Error().stack ?? '';
|
|
166
|
+
|
|
167
|
+
DyFM_Log.info(`\nTRYING TO FIND STACK LOCATION FOR: ${this.name}`);
|
|
168
|
+
DyFM_Log.info(`\n..."${stack}"`);
|
|
169
|
+
|
|
170
|
+
stack = stack.split('\n').filter(
|
|
171
|
+
(line: string): boolean => !line.includes('node_modules')
|
|
172
|
+
).join('\n');
|
|
173
|
+
stack = stack.replace(' at ', '');
|
|
174
|
+
DyFM_Log.H_info(`\n stack location: "${stack}"`);
|
|
175
|
+
}
|
|
176
|
+
|
|
165
177
|
/**
|
|
166
178
|
*
|
|
167
179
|
* @returns
|
|
@@ -177,6 +189,10 @@ export class DyNTS_Endpoint_Params {
|
|
|
177
189
|
await this.preLog(req, res, issuer);
|
|
178
190
|
}
|
|
179
191
|
|
|
192
|
+
if (DyNTS_global_settings.log_settings.requestStackLocation) {
|
|
193
|
+
this.logStackLocation();
|
|
194
|
+
}
|
|
195
|
+
|
|
180
196
|
await DyFM_Array.asyncForEach(this.preProcesses,
|
|
181
197
|
async (preProcess: (req: Request, res: Response) => Promise<void>): Promise<void> => {
|
|
182
198
|
await preProcess(req, res);
|
|
@@ -283,37 +299,41 @@ export class DyNTS_Endpoint_Params {
|
|
|
283
299
|
DyFM_Log.error('');
|
|
284
300
|
|
|
285
301
|
} catch (error) {
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
`(${this.name}, ${this.endpoint})` +
|
|
290
|
-
`\n(DYNAMO MULTILEVEL ERROR means, that the ERROR HANDLING is ALSO FAILED, ` +
|
|
291
|
-
`and the error message was not sent.)` +
|
|
292
|
-
`\nERROR:`, error,
|
|
293
|
-
'\n'
|
|
294
|
-
);
|
|
295
|
-
} else {
|
|
296
|
-
DyFM_Log.H_error(
|
|
297
|
-
`\n\nDYNAMO MULTILEVEL ERROR:DyNTS_EndpointParams: error: ` +
|
|
298
|
-
`(${this.name}, ${this.endpoint})` +
|
|
299
|
-
`\n(DYNAMO MULTILEVEL ERROR means, that the ERROR HANDLING is ALSO FAILED, ` +
|
|
300
|
-
`and the error message was not sent.)`
|
|
301
|
-
);
|
|
302
|
-
}
|
|
302
|
+
this.multiLevelError(error);
|
|
303
|
+
}
|
|
304
|
+
}
|
|
303
305
|
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
306
|
+
private multiLevelError(error: any): void {
|
|
307
|
+
if (DyNTS_global_settings.log_settings.highDetailedLogs) {
|
|
308
|
+
DyFM_Log.H_error(
|
|
309
|
+
`\n\nDYNAMO MULTILEVEL ERROR:DyNTS_EndpointParams: error: ` +
|
|
310
|
+
`(${this.name}, ${this.endpoint})` +
|
|
311
|
+
`\n(DYNAMO MULTILEVEL ERROR means, that the ERROR HANDLING is ALSO FAILED, ` +
|
|
312
|
+
`and the error message was not sent.)` +
|
|
313
|
+
`\nERROR:`, error,
|
|
314
|
+
'\n'
|
|
315
|
+
);
|
|
316
|
+
} else {
|
|
317
|
+
DyFM_Log.H_error(
|
|
318
|
+
`\n\nDYNAMO MULTILEVEL ERROR:DyNTS_EndpointParams: error: ` +
|
|
319
|
+
`(${this.name}, ${this.endpoint})` +
|
|
320
|
+
`\n(DYNAMO MULTILEVEL ERROR means, that the ERROR HANDLING is ALSO FAILED, ` +
|
|
321
|
+
`and the error message was not sent.)`
|
|
322
|
+
);
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
if (
|
|
326
|
+
DyNTS_global_settings.log_settings.highDetailedLogs ||
|
|
327
|
+
!(error instanceof DyFM_Error)
|
|
328
|
+
) {
|
|
329
|
+
DyFM_Log.H_error(
|
|
330
|
+
`Endpoint "${this.endpoint}" caught an error and FAILED TO RESOLVE. (${this.name})`,
|
|
331
|
+
'\n ERROR:', error
|
|
332
|
+
);
|
|
333
|
+
} else {
|
|
334
|
+
error.logSimple(
|
|
335
|
+
`Endpoint "${this.endpoint}" caught an error and FAILED TO RESOLVE. (${this.name})`
|
|
336
|
+
);
|
|
317
337
|
}
|
|
318
338
|
}
|
|
319
339
|
|
|
@@ -31,6 +31,11 @@ export interface DyNTS_GlobalLog_Settings {
|
|
|
31
31
|
* this is an application wide default setting for route debug logs
|
|
32
32
|
*/
|
|
33
33
|
responseContent?: boolean;
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* this is an application wide default setting for route debug logs
|
|
37
|
+
*/
|
|
38
|
+
requestStackLocation?: boolean;
|
|
34
39
|
|
|
35
40
|
|
|
36
41
|
/**
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
|
|
2
|
-
import {
|
|
2
|
+
import { DyFM_SocketEvent, DyFM_SocketEvent_Key } from '@futdevpro/fsm-dynamo/socket';
|
|
3
|
+
|
|
3
4
|
import {
|
|
4
5
|
DyNTS_SocketClientService_Params
|
|
5
6
|
} from '../socket/_models/socket-client-service-params.control-model';
|
|
6
|
-
import {
|
|
7
|
-
import { DyNTS_SocketClientService } from '../socket/_services/socket-client.service';
|
|
7
|
+
import { DyNTS_SocketClient_ServiceBase } from '../socket/_services/socket-client.service';
|
|
8
8
|
|
|
9
|
-
export class SocketClient_Mock extends
|
|
9
|
+
export class SocketClient_Mock extends DyNTS_SocketClient_ServiceBase {
|
|
10
10
|
|
|
11
11
|
private constructor() {
|
|
12
12
|
super();
|
|
@@ -16,11 +16,11 @@ export class SocketClient_Mock extends DyNTS_SocketClientService {
|
|
|
16
16
|
return SocketClient_Mock.getSingletonInstance();
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
-
getIncomingEvents():
|
|
19
|
+
getIncomingEvents(): DyFM_SocketEvent<any>[] {
|
|
20
20
|
return [
|
|
21
|
-
new
|
|
21
|
+
new DyFM_SocketEvent({
|
|
22
22
|
name: 'connect',
|
|
23
|
-
eventKey:
|
|
23
|
+
eventKey: DyFM_SocketEvent_Key.connect,
|
|
24
24
|
tasks: [
|
|
25
25
|
async (content: any, issuer: string) => {
|
|
26
26
|
console.log('SocketClient_Mock: connect event received');
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Socket } from 'socket.io';
|
|
2
|
-
import {
|
|
2
|
+
import { DyFM_SocketEvent } from '@futdevpro/fsm-dynamo/socket';
|
|
3
|
+
|
|
3
4
|
import {
|
|
4
5
|
DyNTS_SocketPresence
|
|
5
6
|
} from '../socket/_models/socket-presence.control-model';
|
|
@@ -24,16 +25,16 @@ export class DyNTS_SocketServer_Mock extends
|
|
|
24
25
|
});
|
|
25
26
|
}
|
|
26
27
|
|
|
27
|
-
getIncomingEvents():
|
|
28
|
+
getIncomingEvents(): DyFM_SocketEvent<any>[] {
|
|
28
29
|
return [];
|
|
29
30
|
}
|
|
30
31
|
|
|
31
|
-
protected async
|
|
32
|
+
protected async getPresenceFromSubscriptionEventContent(
|
|
32
33
|
socketSubscription: any,
|
|
33
34
|
socket: Socket
|
|
34
35
|
): Promise<DyNTS_SocketPresence> {
|
|
35
36
|
return new DyNTS_SocketPresence({
|
|
36
|
-
|
|
37
|
+
issuerLocalId: socketSubscription.issuerId,
|
|
37
38
|
sockets: [ socket ],
|
|
38
39
|
issuer: 'ISSUER socketServer_Mock',
|
|
39
40
|
});
|
|
@@ -1,29 +1,20 @@
|
|
|
1
1
|
|
|
2
2
|
import * as SocketIO from 'socket.io-client';
|
|
3
3
|
|
|
4
|
-
import { second } from '@futdevpro/fsm-dynamo';
|
|
4
|
+
import { DyFM_Log, second } from '@futdevpro/fsm-dynamo';
|
|
5
|
+
import { DyFM_SocketClient_Params } from '@futdevpro/fsm-dynamo/socket';
|
|
5
6
|
|
|
6
7
|
/**
|
|
7
8
|
* socket handling and clarification is under development
|
|
8
9
|
*/
|
|
9
|
-
export class DyNTS_SocketClientService_Params {
|
|
10
|
-
|
|
11
|
-
name: string;
|
|
12
|
-
address?: string = 'ws://localhost';
|
|
13
|
-
port: number;
|
|
14
|
-
reconnectDelay?: number = second * 10;
|
|
15
|
-
reconnect?: boolean = true;
|
|
16
|
-
socketOptions?: Partial<SocketIO.ManagerOptions & SocketIO.SocketOptions>;
|
|
10
|
+
export class DyNTS_SocketClientService_Params extends DyFM_SocketClient_Params {
|
|
11
|
+
override address?: string = 'ws://localhost';
|
|
17
12
|
|
|
18
13
|
constructor(
|
|
19
14
|
set: DyNTS_SocketClientService_Params
|
|
20
15
|
) {
|
|
21
|
-
|
|
16
|
+
super(set);
|
|
22
17
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
if (this.socketOptions?.autoConnect || this.socketOptions?.reconnection) {
|
|
26
|
-
this.reconnect = false;
|
|
27
|
-
}
|
|
18
|
+
DyFM_Log.H_info('T1000 (test this with custom address!)', this.address);
|
|
28
19
|
}
|
|
29
20
|
}
|
|
@@ -9,10 +9,11 @@ import * as SocketIO from 'socket.io';
|
|
|
9
9
|
*/
|
|
10
10
|
export class DyNTS_SocketPresence {
|
|
11
11
|
/**
|
|
12
|
-
* this is the presence ID which is used to
|
|
13
|
-
* usually the service master identifier such as userID
|
|
12
|
+
* this is the presence ID which is used to get and handle the presence
|
|
13
|
+
* usually the service master identifier such as userID
|
|
14
|
+
* (issuerLocalId != issuer which is the main master identifier usually the accountID)
|
|
14
15
|
* */
|
|
15
|
-
|
|
16
|
+
issuerLocalId: string;
|
|
16
17
|
serviceName?: string = 'unknown';
|
|
17
18
|
onDestroy?: (issuerId: string) => void = (): void => {};
|
|
18
19
|
|
|
@@ -28,7 +29,7 @@ export class DyNTS_SocketPresence {
|
|
|
28
29
|
* this is the presence ID which is used to get and set handle the presence/sockets
|
|
29
30
|
* usually the service master identifier such as userID
|
|
30
31
|
* */
|
|
31
|
-
|
|
32
|
+
issuerLocalId: string,
|
|
32
33
|
serviceName?: string,
|
|
33
34
|
onDestroy?: (issuerId: string) => void,
|
|
34
35
|
|
|
@@ -37,27 +38,28 @@ export class DyNTS_SocketPresence {
|
|
|
37
38
|
|
|
38
39
|
/**
|
|
39
40
|
* this is the issuer ID which is used to register data changes,
|
|
40
|
-
*
|
|
41
|
+
* USUALLY the main master identifier such as accountID
|
|
41
42
|
*/
|
|
42
43
|
issuer: string,
|
|
43
44
|
}
|
|
44
45
|
) {
|
|
45
|
-
if (!set?.
|
|
46
|
+
if (!set?.issuerLocalId) {
|
|
46
47
|
throw new DyFM_Error({
|
|
47
48
|
...this._getDefaultErrorSettings(
|
|
48
49
|
'constructor',
|
|
49
50
|
new Error(
|
|
50
|
-
`trying to create DyNTS_SocketPresence without a valid
|
|
51
|
-
`\nset: ${JSON.stringify(set)}`
|
|
51
|
+
`trying to create DyNTS_SocketPresence without a valid issuerLocalId!`/* +
|
|
52
|
+
`\nset: ${JSON.stringify(set)}` */
|
|
52
53
|
),
|
|
53
54
|
set?.issuer
|
|
54
55
|
),
|
|
55
56
|
|
|
56
57
|
errorCode: 'NTS-SD0-C00',
|
|
58
|
+
additionalContent: { set: set },
|
|
57
59
|
});
|
|
58
60
|
}
|
|
59
61
|
|
|
60
|
-
this.
|
|
62
|
+
this.issuerLocalId = set.issuerLocalId;
|
|
61
63
|
|
|
62
64
|
if (set.serviceName) {
|
|
63
65
|
this.serviceName = set.serviceName;
|
|
@@ -77,7 +79,7 @@ export class DyNTS_SocketPresence {
|
|
|
77
79
|
'constructor',
|
|
78
80
|
new Error(
|
|
79
81
|
`trying to create DyNTS_SocketPresence without a single active socket!` +
|
|
80
|
-
`\nissuerId: ${this.
|
|
82
|
+
`\nissuerId: ${this.issuerLocalId}`
|
|
81
83
|
),
|
|
82
84
|
set?.issuer
|
|
83
85
|
),
|
|
@@ -194,7 +196,7 @@ export class DyNTS_SocketPresence {
|
|
|
194
196
|
): DyFM_Error_Settings {
|
|
195
197
|
return {
|
|
196
198
|
status: (error as DyFM_Error)?.___status ?? 406,
|
|
197
|
-
message: (error as Error)?.message ?? `${fnName} was
|
|
199
|
+
message: (error as Error)?.message ?? `${fnName} was UNSUCCESSFUL (NTS; ${this.serviceName})`,
|
|
198
200
|
userMessage: (error as DyFM_Error)?.__userMessage ?? this.defaultErrorUserMsg,
|
|
199
201
|
issuerService: this.serviceName + ` (${this?.constructor?.name}-DyNTS_SocketPresence)`,
|
|
200
202
|
addECToUserMsg: !(error as DyFM_Error)?.__userMessage,
|
|
@@ -1,28 +1,28 @@
|
|
|
1
1
|
|
|
2
2
|
|
|
3
3
|
|
|
4
|
-
import * as
|
|
4
|
+
import * as SocketIOClient from 'socket.io-client';
|
|
5
5
|
|
|
6
|
-
import { DyNTS_SingletonService } from '../../../_services/base/singleton.service';
|
|
7
6
|
import {
|
|
8
7
|
DyFM_Error, DyFM_Log, DyFM_delay, DyFM_Array, DyFM_errorFlag
|
|
9
8
|
} from '@futdevpro/fsm-dynamo';
|
|
9
|
+
import { DyFM_SocketEvent, DyFM_SocketEvent_Key } from '@futdevpro/fsm-dynamo/socket';
|
|
10
|
+
|
|
11
|
+
import { DyNTS_SingletonService } from '../../../_services/base/singleton.service';
|
|
12
|
+
import { DyNTS_global_settings } from '../../../_collections/global-settings.const';
|
|
10
13
|
import {
|
|
11
14
|
DyNTS_SocketClientService_Params
|
|
12
15
|
} from '../_models/socket-client-service-params.control-model';
|
|
13
|
-
import { DyNTS_global_settings } from '../../../_collections/global-settings.const';
|
|
14
|
-
import { DyNTS_SocketEvent } from '../_models/socket-event.control-model';
|
|
15
|
-
import { DyNTS_SocketEventKey } from '../_enums/socket-event-key.enum';
|
|
16
16
|
|
|
17
|
-
export abstract class
|
|
17
|
+
export abstract class DyNTS_SocketClient_ServiceBase extends DyNTS_SingletonService /* DyFM_SocketClient_ServiceBase */ {
|
|
18
18
|
|
|
19
19
|
private _params: DyNTS_SocketClientService_Params;
|
|
20
20
|
protected get params(): DyNTS_SocketClientService_Params { return this._params; }
|
|
21
21
|
get name(): string { return this.params.name; }
|
|
22
22
|
|
|
23
|
-
protected socket:
|
|
23
|
+
protected socket: SocketIOClient.Socket;
|
|
24
24
|
|
|
25
|
-
protected incomingEvents:
|
|
25
|
+
protected incomingEvents: DyFM_SocketEvent<any>[];
|
|
26
26
|
|
|
27
27
|
protected _connected: boolean = false;
|
|
28
28
|
get connected(): boolean { return this._connected; }
|
|
@@ -30,9 +30,9 @@ export abstract class DyNTS_SocketClientService extends DyNTS_SingletonService {
|
|
|
30
30
|
protected debugLog: boolean = DyNTS_global_settings.log_settings.setup;
|
|
31
31
|
protected logFn: boolean = DyNTS_global_settings.log_settings.functions;
|
|
32
32
|
|
|
33
|
-
private defaultEvents:
|
|
34
|
-
new
|
|
35
|
-
eventKey:
|
|
33
|
+
private defaultEvents: DyFM_SocketEvent<any>[] = [
|
|
34
|
+
new DyFM_SocketEvent<any>({
|
|
35
|
+
eventKey: DyFM_SocketEvent_Key.connect,
|
|
36
36
|
tasks: [
|
|
37
37
|
async () => {
|
|
38
38
|
this._connected = true;
|
|
@@ -41,8 +41,8 @@ export abstract class DyNTS_SocketClientService extends DyNTS_SingletonService {
|
|
|
41
41
|
],
|
|
42
42
|
}),
|
|
43
43
|
|
|
44
|
-
new
|
|
45
|
-
eventKey:
|
|
44
|
+
new DyFM_SocketEvent<any>({
|
|
45
|
+
eventKey: DyFM_SocketEvent_Key.disconnect,
|
|
46
46
|
tasks: [
|
|
47
47
|
async () => {
|
|
48
48
|
this._connected = false;
|
|
@@ -56,8 +56,8 @@ export abstract class DyNTS_SocketClientService extends DyNTS_SingletonService {
|
|
|
56
56
|
],
|
|
57
57
|
}),
|
|
58
58
|
|
|
59
|
-
new
|
|
60
|
-
eventKey:
|
|
59
|
+
new DyFM_SocketEvent<any>({
|
|
60
|
+
eventKey: DyFM_SocketEvent_Key.subscriptionSuccessful,
|
|
61
61
|
tasks: [
|
|
62
62
|
async () => {
|
|
63
63
|
DyFM_Log.success(`<=--> socket-client(${this.params.name}) subscription successful!`);
|
|
@@ -65,8 +65,8 @@ export abstract class DyNTS_SocketClientService extends DyNTS_SingletonService {
|
|
|
65
65
|
],
|
|
66
66
|
}),
|
|
67
67
|
|
|
68
|
-
new
|
|
69
|
-
eventKey:
|
|
68
|
+
new DyFM_SocketEvent<any>({
|
|
69
|
+
eventKey: DyFM_SocketEvent_Key.error,
|
|
70
70
|
tasks: [
|
|
71
71
|
async (content: any) => {
|
|
72
72
|
DyFM_Log.error(`=--> socket-client(${this.params.name}) ERROR!:`, content);
|
|
@@ -101,7 +101,14 @@ export abstract class DyNTS_SocketClientService extends DyNTS_SingletonService {
|
|
|
101
101
|
try {
|
|
102
102
|
this._params = this.getParams();
|
|
103
103
|
this.incomingEvents = this.getIncomingEvents() ?? [];
|
|
104
|
-
this.socket =
|
|
104
|
+
this.socket = SocketIOClient.io(
|
|
105
|
+
`${this.params.address}:${this.params.port}`,
|
|
106
|
+
{
|
|
107
|
+
reconnection: this.params.reconnect,
|
|
108
|
+
reconnectionDelay: this.params.reconnectDelay,
|
|
109
|
+
...this.params.socketOptions,
|
|
110
|
+
}
|
|
111
|
+
);
|
|
105
112
|
|
|
106
113
|
await this.setupDefaultEvents();
|
|
107
114
|
|
|
@@ -124,10 +131,10 @@ export abstract class DyNTS_SocketClientService extends DyNTS_SingletonService {
|
|
|
124
131
|
try {
|
|
125
132
|
if (this.logFn) console.log('\nFn:. setupDefaultEvents');
|
|
126
133
|
|
|
127
|
-
this.defaultEvents.forEach((defaultEvent:
|
|
134
|
+
this.defaultEvents.forEach((defaultEvent: DyFM_SocketEvent<any>) => {
|
|
128
135
|
defaultEvent.serviceName = this.params.name;
|
|
129
136
|
const eventDeclared = this.incomingEvents.find(
|
|
130
|
-
(event:
|
|
137
|
+
(event: DyFM_SocketEvent<any>) => event.eventKey === defaultEvent.eventKey
|
|
131
138
|
);
|
|
132
139
|
|
|
133
140
|
if (!eventDeclared) {
|
|
@@ -152,14 +159,14 @@ export abstract class DyNTS_SocketClientService extends DyNTS_SingletonService {
|
|
|
152
159
|
|
|
153
160
|
await DyFM_Array.asyncForEach(
|
|
154
161
|
this.incomingEvents,
|
|
155
|
-
async (event:
|
|
162
|
+
async (event: DyFM_SocketEvent<any>) => {
|
|
156
163
|
event.serviceName = this.params.name;
|
|
157
164
|
this.socket.on(event.eventKey, async (content: any) => {
|
|
158
165
|
try {
|
|
159
166
|
await event.executeEventTasks(content, this.params.service);
|
|
160
167
|
} catch (error) {
|
|
161
168
|
DyFM_Log.error(`socket-client(${this.params.name}) Event failed, ERROR:`, error);
|
|
162
|
-
await this.emitEvent(
|
|
169
|
+
await this.emitEvent(DyFM_SocketEvent_Key.error, error);
|
|
163
170
|
}
|
|
164
171
|
});
|
|
165
172
|
}
|
|
@@ -241,5 +248,5 @@ export abstract class DyNTS_SocketClientService extends DyNTS_SingletonService {
|
|
|
241
248
|
/**
|
|
242
249
|
* You must setup events and required services in this function
|
|
243
250
|
*/
|
|
244
|
-
abstract getIncomingEvents():
|
|
251
|
+
abstract getIncomingEvents(): DyFM_SocketEvent<any>[];
|
|
245
252
|
}
|