@futdevpro/nts-dynamo 1.9.17 → 1.9.18
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/.copilot/patterns.json +1 -1
- package/README.md +2 -2
- package/build/_constants/global-settings.const.d.ts +2 -2
- package/build/_constants/global-settings.const.d.ts.map +1 -1
- package/build/_constants/global-settings.const.js +4 -4
- package/build/_constants/global-settings.const.js.map +1 -1
- package/build/_constants/mocks/app-extended-server.mock.d.ts +26 -26
- package/build/_constants/mocks/app-extended-server.mock.d.ts.map +1 -1
- package/build/_constants/mocks/app-extended-server.mock.js +29 -29
- package/build/_constants/mocks/app-extended-server.mock.js.map +1 -1
- package/build/_constants/mocks/app-params.mock.d.ts +2 -2
- package/build/_constants/mocks/app-params.mock.d.ts.map +1 -1
- package/build/_constants/mocks/app-params.mock.js +2 -2
- package/build/_constants/mocks/app-params.mock.js.map +1 -1
- package/build/_constants/mocks/app-server.mock.d.ts +28 -28
- package/build/_constants/mocks/app-server.mock.d.ts.map +1 -1
- package/build/_constants/mocks/app-server.mock.js +25 -25
- package/build/_constants/mocks/app-server.mock.js.map +1 -1
- package/build/_constants/mocks/auth-service.mock.d.ts +2 -2
- package/build/_constants/mocks/auth-service.mock.d.ts.map +1 -1
- package/build/_constants/mocks/auth-service.mock.js +1 -1
- package/build/_constants/mocks/auth-service.mock.js.map +1 -1
- package/build/_constants/mocks/controller.mock.d.ts +3 -3
- package/build/_constants/mocks/controller.mock.d.ts.map +1 -1
- package/build/_constants/mocks/controller.mock.js +5 -5
- package/build/_constants/mocks/controller.mock.js.map +1 -1
- package/build/_constants/mocks/data-model.mock.d.ts +5 -5
- package/build/_constants/mocks/data-model.mock.d.ts.map +1 -1
- package/build/_constants/mocks/data-model.mock.js +4 -4
- package/build/_constants/mocks/data-model.mock.js.map +1 -1
- package/build/_constants/mocks/email-service-collection.mock.d.ts +2 -2
- package/build/_constants/mocks/email-service-collection.mock.d.ts.map +1 -1
- package/build/_constants/mocks/email-service-collection.mock.js +1 -1
- package/build/_constants/mocks/email-service-collection.mock.js.map +1 -1
- package/build/_constants/mocks/email-service.mock.d.ts +2 -2
- package/build/_constants/mocks/email-service.mock.d.ts.map +1 -1
- package/build/_constants/mocks/email-service.mock.js +1 -1
- package/build/_constants/mocks/email-service.mock.js.map +1 -1
- package/build/_constants/mocks/endpoint.mock.d.ts +8 -8
- package/build/_constants/mocks/endpoint.mock.d.ts.map +1 -1
- package/build/_constants/mocks/endpoint.mock.js +20 -20
- package/build/_constants/mocks/endpoint.mock.js.map +1 -1
- package/build/_constants/mocks/socket-client.mock.d.ts +5 -5
- package/build/_constants/mocks/socket-client.mock.d.ts.map +1 -1
- package/build/_constants/mocks/socket-client.mock.js +4 -4
- package/build/_constants/mocks/socket-client.mock.js.map +1 -1
- package/build/_constants/mocks/socket-server.mock.d.ts +9 -9
- package/build/_constants/mocks/socket-server.mock.d.ts.map +1 -1
- package/build/_constants/mocks/socket-server.mock.js +6 -6
- package/build/_constants/mocks/socket-server.mock.js.map +1 -1
- package/build/_enums/data-model-type.enum.d.ts +1 -1
- package/build/_enums/data-model-type.enum.d.ts.map +1 -1
- package/build/_enums/data-model-type.enum.js +7 -7
- package/build/_enums/data-model-type.enum.js.map +1 -1
- package/build/_enums/data-service-function.enum.d.ts +1 -1
- package/build/_enums/data-service-function.enum.d.ts.map +1 -1
- package/build/_enums/data-service-function.enum.js +9 -9
- package/build/_enums/data-service-function.enum.js.map +1 -1
- package/build/_enums/http/http-call-type.enum.d.ts +1 -1
- package/build/_enums/http/http-call-type.enum.d.ts.map +1 -1
- package/build/_enums/http/http-call-type.enum.js +9 -9
- package/build/_enums/http/http-call-type.enum.js.map +1 -1
- package/build/_enums/http/http-response-type.enum.d.ts +1 -1
- package/build/_enums/http/http-response-type.enum.d.ts.map +1 -1
- package/build/_enums/http/http-response-type.enum.js +8 -8
- package/build/_enums/http/http-response-type.enum.js.map +1 -1
- package/build/_enums/http/socket-event-type.enum.d.ts +1 -1
- package/build/_enums/http/socket-event-type.enum.d.ts.map +1 -1
- package/build/_enums/http/socket-event-type.enum.js +14 -14
- package/build/_enums/http/socket-event-type.enum.js.map +1 -1
- package/build/_enums/route-security.enum.d.ts +1 -1
- package/build/_enums/route-security.enum.d.ts.map +1 -1
- package/build/_enums/route-security.enum.js +7 -7
- package/build/_enums/route-security.enum.js.map +1 -1
- package/build/_enums/socket-security.enum.d.ts +1 -1
- package/build/_enums/socket-security.enum.d.ts.map +1 -1
- package/build/_enums/socket-security.enum.js +6 -6
- package/build/_enums/socket-security.enum.js.map +1 -1
- package/build/_models/control-models/api-call-params.control-model.d.ts +9 -9
- package/build/_models/control-models/api-call-params.control-model.d.ts.map +1 -1
- package/build/_models/control-models/api-call-params.control-model.js +6 -6
- package/build/_models/control-models/api-call-params.control-model.js.map +1 -1
- package/build/_models/control-models/app-ext-system-controls.control-model.d.ts +5 -5
- package/build/_models/control-models/app-ext-system-controls.control-model.d.ts.map +1 -1
- package/build/_models/control-models/app-ext-system-controls.control-model.js +6 -6
- package/build/_models/control-models/app-ext-system-controls.control-model.js.map +1 -1
- package/build/_models/control-models/app-params.control-model.d.ts +2 -3
- package/build/_models/control-models/app-params.control-model.d.ts.map +1 -1
- package/build/_models/control-models/app-params.control-model.js +3 -3
- package/build/_models/control-models/app-params.control-model.js.map +1 -1
- package/build/_models/control-models/app-system-controls.control-model.d.ts +6 -6
- package/build/_models/control-models/app-system-controls.control-model.d.ts.map +1 -1
- package/build/_models/control-models/app-system-controls.control-model.js +7 -7
- package/build/_models/control-models/app-system-controls.control-model.js.map +1 -1
- package/build/_models/control-models/endpoint-params.control-model.d.ts +7 -7
- package/build/_models/control-models/endpoint-params.control-model.d.ts.map +1 -1
- package/build/_models/control-models/endpoint-params.control-model.js +35 -35
- package/build/_models/control-models/endpoint-params.control-model.js.map +1 -1
- package/build/_models/control-models/http-settings.control-model.d.ts +2 -2
- package/build/_models/control-models/http-settings.control-model.d.ts.map +1 -1
- package/build/_models/control-models/http-settings.control-model.js +3 -3
- package/build/_models/control-models/http-settings.control-model.js.map +1 -1
- package/build/_models/control-models/socket-client-service-params.control-model.d.ts +2 -2
- package/build/_models/control-models/socket-client-service-params.control-model.d.ts.map +1 -1
- package/build/_models/control-models/socket-client-service-params.control-model.js +3 -3
- package/build/_models/control-models/socket-client-service-params.control-model.js.map +1 -1
- package/build/_models/control-models/socket-event.control-model.d.ts +10 -10
- package/build/_models/control-models/socket-event.control-model.d.ts.map +1 -1
- package/build/_models/control-models/socket-event.control-model.js +19 -19
- package/build/_models/control-models/socket-event.control-model.js.map +1 -1
- package/build/_models/control-models/socket-presence.control-model.d.ts +1 -1
- package/build/_models/control-models/socket-presence.control-model.d.ts.map +1 -1
- package/build/_models/control-models/socket-presence.control-model.js +14 -14
- package/build/_models/control-models/socket-presence.control-model.js.map +1 -1
- package/build/_models/control-models/socket-server-service-params.control-model.d.ts +4 -4
- package/build/_models/control-models/socket-server-service-params.control-model.d.ts.map +1 -1
- package/build/_models/control-models/socket-server-service-params.control-model.js +4 -4
- package/build/_models/control-models/socket-server-service-params.control-model.js.map +1 -1
- package/build/_models/control-models/system-control.control-model.d.ts +1 -1
- package/build/_models/control-models/system-control.control-model.d.ts.map +1 -1
- package/build/_models/control-models/system-control.control-model.js +3 -3
- package/build/_models/control-models/system-control.control-model.js.map +1 -1
- package/build/_models/interfaces/certification-settings.interface.d.ts +1 -1
- package/build/_models/interfaces/certification-settings.interface.d.ts.map +1 -1
- package/build/_models/interfaces/global-service-settings.interface.d.ts +13 -13
- package/build/_models/interfaces/global-service-settings.interface.d.ts.map +1 -1
- package/build/_models/interfaces/global-settings.interface.d.ts +5 -5
- package/build/_models/interfaces/global-settings.interface.d.ts.map +1 -1
- package/build/_models/interfaces/routing-module-settings.interface.d.ts +5 -5
- package/build/_models/interfaces/routing-module-settings.interface.d.ts.map +1 -1
- package/build/_models/types/db-filter.type.d.ts +8 -8
- package/build/_models/types/db-filter.type.d.ts.map +1 -1
- package/build/_models/types/db-update.type.d.ts +3 -3
- package/build/_models/types/db-update.type.d.ts.map +1 -1
- package/build/_modules/custom-data/custom-data.controller.d.ts +3 -3
- package/build/_modules/custom-data/custom-data.controller.d.ts.map +1 -1
- package/build/_modules/custom-data/custom-data.controller.js +12 -12
- package/build/_modules/custom-data/custom-data.controller.js.map +1 -1
- package/build/_modules/custom-data/custom-data.data-service.d.ts +4 -4
- package/build/_modules/custom-data/custom-data.data-service.d.ts.map +1 -1
- package/build/_modules/custom-data/custom-data.data-service.js +4 -4
- package/build/_modules/custom-data/custom-data.data-service.js.map +1 -1
- package/build/_modules/custom-data/get-custom-data-routing-module.util.d.ts +3 -3
- package/build/_modules/custom-data/get-custom-data-routing-module.util.d.ts.map +1 -1
- package/build/_modules/custom-data/get-custom-data-routing-module.util.js +5 -5
- package/build/_modules/custom-data/get-custom-data-routing-module.util.js.map +1 -1
- package/build/_modules/test/get-test-routing-module.util.d.ts +3 -3
- package/build/_modules/test/get-test-routing-module.util.d.ts.map +1 -1
- package/build/_modules/test/get-test-routing-module.util.js +5 -5
- package/build/_modules/test/get-test-routing-module.util.js.map +1 -1
- package/build/_modules/test/test.controller.d.ts +3 -3
- package/build/_modules/test/test.controller.d.ts.map +1 -1
- package/build/_modules/test/test.controller.js +24 -24
- package/build/_modules/test/test.controller.js.map +1 -1
- package/build/_modules/usage/get-usage-routing-module.util.d.ts +3 -3
- package/build/_modules/usage/get-usage-routing-module.util.d.ts.map +1 -1
- package/build/_modules/usage/get-usage-routing-module.util.js +5 -5
- package/build/_modules/usage/get-usage-routing-module.util.js.map +1 -1
- package/build/_modules/usage/usage.controller.d.ts +3 -3
- package/build/_modules/usage/usage.controller.d.ts.map +1 -1
- package/build/_modules/usage/usage.controller.js +23 -23
- package/build/_modules/usage/usage.controller.js.map +1 -1
- package/build/_modules/usage/usage.data-service.d.ts +9 -9
- package/build/_modules/usage/usage.data-service.d.ts.map +1 -1
- package/build/_modules/usage/usage.data-service.js +13 -13
- package/build/_modules/usage/usage.data-service.js.map +1 -1
- package/build/_services/base/data.service.d.ts +14 -14
- package/build/_services/base/data.service.d.ts.map +1 -1
- package/build/_services/base/data.service.js +45 -45
- package/build/_services/base/data.service.js.map +1 -1
- package/build/_services/base/db.service.d.ts +15 -15
- package/build/_services/base/db.service.d.ts.map +1 -1
- package/build/_services/base/db.service.js +38 -38
- package/build/_services/base/db.service.js.map +1 -1
- package/build/_services/base/db.service.spec.js +1 -1
- package/build/_services/base/singleton.service.d.ts +1 -1
- package/build/_services/base/singleton.service.d.ts.map +1 -1
- package/build/_services/base/singleton.service.js +3 -3
- package/build/_services/base/singleton.service.js.map +1 -1
- package/build/_services/core/api.service.d.ts +6 -6
- package/build/_services/core/api.service.d.ts.map +1 -1
- package/build/_services/core/api.service.js +50 -50
- package/build/_services/core/api.service.js.map +1 -1
- package/build/_services/core/auth.service.d.ts +8 -8
- package/build/_services/core/auth.service.d.ts.map +1 -1
- package/build/_services/core/auth.service.js +5 -5
- package/build/_services/core/auth.service.js.map +1 -1
- package/build/_services/core/email.service.d.ts +8 -8
- package/build/_services/core/email.service.d.ts.map +1 -1
- package/build/_services/core/email.service.js +28 -28
- package/build/_services/core/email.service.js.map +1 -1
- package/build/_services/core/global.service.d.ts +21 -21
- package/build/_services/core/global.service.d.ts.map +1 -1
- package/build/_services/core/global.service.js +31 -31
- package/build/_services/core/global.service.js.map +1 -1
- package/build/_services/core/service-collection.service.d.ts +2 -2
- package/build/_services/core/service-collection.service.d.ts.map +1 -1
- package/build/_services/core/service-collection.service.js +3 -3
- package/build/_services/core/service-collection.service.js.map +1 -1
- package/build/_services/route/controller.service.d.ts +8 -8
- package/build/_services/route/controller.service.d.ts.map +1 -1
- package/build/_services/route/controller.service.js +6 -6
- package/build/_services/route/controller.service.js.map +1 -1
- package/build/_services/route/routing-module.service.d.ts +10 -10
- package/build/_services/route/routing-module.service.d.ts.map +1 -1
- package/build/_services/route/routing-module.service.js +32 -32
- package/build/_services/route/routing-module.service.js.map +1 -1
- package/build/_services/server/app-extended.server.d.ts +13 -13
- package/build/_services/server/app-extended.server.d.ts.map +1 -1
- package/build/_services/server/app-extended.server.js +46 -46
- package/build/_services/server/app-extended.server.js.map +1 -1
- package/build/_services/server/app-extended.server.spec.js +7 -7
- package/build/_services/server/app-extended.server.spec.js.map +1 -1
- package/build/_services/server/app.server.d.ts +39 -39
- package/build/_services/server/app.server.d.ts.map +1 -1
- package/build/_services/server/app.server.js +139 -139
- package/build/_services/server/app.server.js.map +1 -1
- package/build/_services/server/app.server.spec.js +8 -8
- package/build/_services/server/app.server.spec.js.map +1 -1
- package/build/_services/shared.service.spec.js +5 -5
- package/build/_services/shared.service.spec.js.map +1 -1
- package/build/_services/shared.static-service.d.ts +4 -4
- package/build/_services/shared.static-service.d.ts.map +1 -1
- package/build/_services/shared.static-service.js +3 -3
- package/build/_services/shared.static-service.js.map +1 -1
- package/build/_services/socket/socket-client.service.d.ts +8 -8
- package/build/_services/socket/socket-client.service.d.ts.map +1 -1
- package/build/_services/socket/socket-client.service.js +35 -35
- package/build/_services/socket/socket-client.service.js.map +1 -1
- package/build/_services/socket/socket-server.service.d.ts +20 -20
- package/build/_services/socket/socket-server.service.d.ts.map +1 -1
- package/build/_services/socket/socket-server.service.js +86 -86
- package/build/_services/socket/socket-server.service.js.map +1 -1
- package/build/_services/socket/socket-server.service.spec.js +2 -2
- package/build/_services/socket/socket-server.service.spec.js.map +1 -1
- package/package.json +5 -2
- package/src/_constants/global-settings.const.ts +6 -6
- package/src/_constants/mocks/app-extended-server.mock.ts +56 -56
- package/src/_constants/mocks/app-params.mock.ts +2 -2
- package/src/_constants/mocks/app-server.mock.ts +52 -52
- package/src/_constants/mocks/auth-service.mock.ts +2 -2
- package/src/_constants/mocks/controller.mock.ts +6 -6
- package/src/_constants/mocks/data-model.mock.ts +5 -5
- package/src/_constants/mocks/email-service-collection.mock.ts +2 -2
- package/src/_constants/mocks/email-service.mock.ts +2 -2
- package/src/_constants/mocks/endpoint.mock.ts +27 -27
- package/src/_constants/mocks/socket-client.mock.ts +9 -9
- package/src/_constants/mocks/socket-server.mock.ts +13 -13
- package/src/_enums/data-model-type.enum.ts +1 -1
- package/src/_enums/data-service-function.enum.ts +1 -1
- package/src/_enums/http/http-call-type.enum.ts +1 -1
- package/src/_enums/http/http-response-type.enum.ts +1 -1
- package/src/_enums/http/socket-event-type.enum.ts +1 -1
- package/src/_enums/route-security.enum.ts +1 -1
- package/src/_enums/socket-security.enum.ts +1 -1
- package/src/_models/control-models/api-call-params.control-model.ts +11 -11
- package/src/_models/control-models/app-ext-system-controls.control-model.ts +5 -5
- package/src/_models/control-models/app-params.control-model.ts +2 -3
- package/src/_models/control-models/app-system-controls.control-model.ts +6 -6
- package/src/_models/control-models/endpoint-params.control-model.ts +57 -57
- package/src/_models/control-models/http-settings.control-model.ts +2 -2
- package/src/_models/control-models/socket-client-service-params.control-model.ts +3 -2
- package/src/_models/control-models/socket-event.control-model.ts +29 -29
- package/src/_models/control-models/socket-presence.control-model.ts +18 -18
- package/src/_models/control-models/socket-server-service-params.control-model.ts +6 -6
- package/src/_models/control-models/system-control.control-model.ts +1 -1
- package/src/_models/interfaces/certification-settings.interface.ts +1 -1
- package/src/_models/interfaces/global-service-settings.interface.ts +15 -15
- package/src/_models/interfaces/global-settings.interface.ts +5 -5
- package/src/_models/interfaces/routing-module-settings.interface.ts +5 -5
- package/src/_models/types/db-filter.type.ts +11 -11
- package/src/_models/types/db-update.type.ts +3 -3
- package/src/_modules/custom-data/custom-data.controller.ts +16 -16
- package/src/_modules/custom-data/custom-data.data-service.ts +6 -6
- package/src/_modules/custom-data/get-custom-data-routing-module.util.ts +12 -12
- package/src/_modules/test/get-test-routing-module.util.ts +12 -12
- package/src/_modules/test/test.controller.ts +28 -28
- package/src/_modules/usage/get-usage-routing-module.util.ts +12 -12
- package/src/_modules/usage/usage.controller.ts +31 -31
- package/src/_modules/usage/usage.data-service.ts +32 -32
- package/src/_services/base/data.service.ts +66 -66
- package/src/_services/base/db.service.spec.ts +1 -1
- package/src/_services/base/db.service.ts +60 -60
- package/src/_services/base/singleton.service.ts +1 -1
- package/src/_services/core/api.service.ts +70 -70
- package/src/_services/core/auth.service.ts +11 -11
- package/src/_services/core/email.service.ts +47 -47
- package/src/_services/core/global.service.ts +65 -65
- package/src/_services/core/service-collection.service.ts +2 -2
- package/src/_services/route/controller.service.ts +11 -11
- package/src/_services/route/routing-module.service.ts +51 -51
- package/src/_services/server/app-extended.server.spec.ts +12 -12
- package/src/_services/server/app-extended.server.ts +59 -59
- package/src/_services/server/app.server.spec.ts +12 -12
- package/src/_services/server/app.server.ts +187 -187
- package/src/_services/shared.service.spec.ts +6 -6
- package/src/_services/shared.static-service.ts +4 -4
- package/src/_services/socket/socket-client.service.ts +49 -49
- package/src/_services/socket/socket-server.service.spec.ts +3 -3
- package/src/_services/socket/socket-server.service.ts +129 -129
|
@@ -2,29 +2,29 @@
|
|
|
2
2
|
import * as SocketIO from 'socket.io';
|
|
3
3
|
|
|
4
4
|
import {
|
|
5
|
-
|
|
5
|
+
DyFM_AnyError, DyFM_Array, DyFM_Error, DyFM_Error_Settings, DyFM_Log
|
|
6
6
|
} from '@futdevpro/fsm-dynamo';
|
|
7
7
|
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
8
|
+
import { DyNTS_SingletonService } from '../base/singleton.service';
|
|
9
|
+
import { DyNTS_globalSettings } from '../../_constants/global-settings.const';
|
|
10
|
+
import { DyNTS_SocketEventKey } from '../../_enums/http/socket-event-type.enum';
|
|
11
|
+
import { DyNTS_SocketSecurity } from '../../_enums/socket-security.enum';
|
|
12
12
|
import {
|
|
13
|
-
|
|
13
|
+
DyNTS_SocketServerService_Params
|
|
14
14
|
} from '../../_models/control-models/socket-server-service-params.control-model';
|
|
15
15
|
import {
|
|
16
|
-
|
|
16
|
+
DyNTS_SocketPresence
|
|
17
17
|
} from '../../_models/control-models/socket-presence.control-model';
|
|
18
18
|
import {
|
|
19
|
-
|
|
19
|
+
DyNTS_SocketEvent, DyNTS_SocketEventPreprocessTask, DyNTS_SocketEventTask
|
|
20
20
|
} from '../../_models/control-models/socket-event.control-model';
|
|
21
21
|
|
|
22
22
|
/**
|
|
23
23
|
* You need to define the following functions:
|
|
24
24
|
* ```ts
|
|
25
|
-
* getServiceParams():
|
|
25
|
+
* getServiceParams(): DyNTS_SocketServerServiceParams;
|
|
26
26
|
*
|
|
27
|
-
* getIncomingEvents():
|
|
27
|
+
* getIncomingEvents(): DyNTS_SocketEvent<any>[];
|
|
28
28
|
*
|
|
29
29
|
* getPresenceFromSubscrioptionEventContent(
|
|
30
30
|
* socketSubscription: T_SubscriptionContent,
|
|
@@ -32,26 +32,26 @@ import {
|
|
|
32
32
|
* ): Promise<T_Presence>;
|
|
33
33
|
* ```
|
|
34
34
|
*/
|
|
35
|
-
export abstract class
|
|
36
|
-
T_Presence extends
|
|
35
|
+
export abstract class DyNTS_SocketServerService<
|
|
36
|
+
T_Presence extends DyNTS_SocketPresence = DyNTS_SocketPresence,
|
|
37
37
|
T_SubscriptionContent = any,
|
|
38
38
|
T_ErrorContent = any
|
|
39
|
-
> extends
|
|
39
|
+
> extends DyNTS_SingletonService {
|
|
40
40
|
|
|
41
|
-
protected params:
|
|
41
|
+
protected params: DyNTS_SocketServerService_Params;
|
|
42
42
|
get name(): string { return this.params.name; }
|
|
43
43
|
get port(): number { return this.params.port; }
|
|
44
|
-
get security():
|
|
44
|
+
get security(): DyNTS_SocketSecurity { return this.params.security; }
|
|
45
45
|
get activeSubscriptionsCount(): number { return this.presences.length; }
|
|
46
46
|
|
|
47
47
|
protected openSocketServer: SocketIO.Server;
|
|
48
48
|
protected secureSocketServer: SocketIO.Server;
|
|
49
49
|
|
|
50
|
-
private connectEvent:
|
|
51
|
-
protected incomingEvents:
|
|
50
|
+
private connectEvent: DyNTS_SocketEvent<SocketIO.Socket>;
|
|
51
|
+
protected incomingEvents: DyNTS_SocketEvent<any>[];
|
|
52
52
|
|
|
53
|
-
private subscriptionEvent:
|
|
54
|
-
private unsubscribeEvent:
|
|
53
|
+
private subscriptionEvent: DyNTS_SocketEvent<any>;
|
|
54
|
+
private unsubscribeEvent: DyNTS_SocketEvent<any>;
|
|
55
55
|
|
|
56
56
|
/**
|
|
57
57
|
* You need to setup a function that converts subscription event content to presence.
|
|
@@ -73,7 +73,7 @@ export abstract class DynamoNTS_SocketServerService<
|
|
|
73
73
|
super();
|
|
74
74
|
|
|
75
75
|
this.asyncConstructor().catch((error: any) => {
|
|
76
|
-
|
|
76
|
+
DyFM_Log.error(
|
|
77
77
|
`Socket Server Service setup failed: ${this.params?.name} (${this.params?.port})`,
|
|
78
78
|
error
|
|
79
79
|
);
|
|
@@ -82,7 +82,7 @@ export abstract class DynamoNTS_SocketServerService<
|
|
|
82
82
|
|
|
83
83
|
private async asyncConstructor(): Promise<void> {
|
|
84
84
|
try {
|
|
85
|
-
this.logSetup =
|
|
85
|
+
this.logSetup = DyNTS_globalSettings.logSetup;
|
|
86
86
|
this.params = this.getServiceParams();
|
|
87
87
|
this.incomingEvents = this.getIncomingEvents() ?? [];
|
|
88
88
|
|
|
@@ -93,12 +93,12 @@ export abstract class DynamoNTS_SocketServerService<
|
|
|
93
93
|
`serurity: ${this.params.security}\n`
|
|
94
94
|
);
|
|
95
95
|
} catch (error) {
|
|
96
|
-
|
|
96
|
+
DyFM_Log.error(
|
|
97
97
|
`Socket Server Service setup failed: ${this.params?.name} (${this.params?.port})`,
|
|
98
98
|
error
|
|
99
99
|
);
|
|
100
100
|
|
|
101
|
-
throw new
|
|
101
|
+
throw new DyFM_Error({
|
|
102
102
|
errorCode: 'NTS-SSS-001',
|
|
103
103
|
error: error,
|
|
104
104
|
});
|
|
@@ -112,15 +112,15 @@ export abstract class DynamoNTS_SocketServerService<
|
|
|
112
112
|
try {
|
|
113
113
|
/** Setup connect event */
|
|
114
114
|
const connectEventIndex = this.incomingEvents.findIndex(
|
|
115
|
-
(event:
|
|
116
|
-
event.eventKey ===
|
|
115
|
+
(event: DyNTS_SocketEvent<any>) =>
|
|
116
|
+
event.eventKey === DyNTS_SocketEventKey.connection
|
|
117
117
|
);
|
|
118
118
|
|
|
119
119
|
if (0 <= connectEventIndex) {
|
|
120
120
|
this.connectEvent = this.incomingEvents.splice(connectEventIndex)[0];
|
|
121
121
|
} else {
|
|
122
|
-
this.connectEvent = new
|
|
123
|
-
eventKey:
|
|
122
|
+
this.connectEvent = new DyNTS_SocketEvent({
|
|
123
|
+
eventKey: DyNTS_SocketEventKey.connection,
|
|
124
124
|
});
|
|
125
125
|
}
|
|
126
126
|
this.connectEvent.serviceName = this.params.name;
|
|
@@ -129,20 +129,20 @@ export abstract class DynamoNTS_SocketServerService<
|
|
|
129
129
|
if (this.getPresenceFromSubscrioptionEventContent) {
|
|
130
130
|
/** Setup subscription event */
|
|
131
131
|
const subscriptionEventIndex = this.incomingEvents.findIndex(
|
|
132
|
-
(event:
|
|
133
|
-
event.eventKey ===
|
|
132
|
+
(event: DyNTS_SocketEvent<any>) =>
|
|
133
|
+
event.eventKey === DyNTS_SocketEventKey.subscribe
|
|
134
134
|
);
|
|
135
135
|
|
|
136
136
|
if (0 <= subscriptionEventIndex) {
|
|
137
137
|
this.subscriptionEvent = this.incomingEvents.splice(subscriptionEventIndex)[0];
|
|
138
|
-
|
|
138
|
+
DyFM_Log.error(
|
|
139
139
|
`You should not set the subscription event, but the subscriptions tasks, ` +
|
|
140
140
|
`in case you need additional steps for your subscriptions.`,
|
|
141
141
|
`${this.params.name} (${this.params.port})`
|
|
142
142
|
);
|
|
143
143
|
} else {
|
|
144
|
-
this.subscriptionEvent = new
|
|
145
|
-
eventKey:
|
|
144
|
+
this.subscriptionEvent = new DyNTS_SocketEvent<T_SubscriptionContent>({
|
|
145
|
+
eventKey: DyNTS_SocketEventKey.subscribe,
|
|
146
146
|
});
|
|
147
147
|
}
|
|
148
148
|
|
|
@@ -157,20 +157,20 @@ export abstract class DynamoNTS_SocketServerService<
|
|
|
157
157
|
|
|
158
158
|
/** Setup subscription event */
|
|
159
159
|
const unsubscribeEventIndex = this.incomingEvents.findIndex(
|
|
160
|
-
(event:
|
|
161
|
-
event.eventKey ===
|
|
160
|
+
(event: DyNTS_SocketEvent<any>) =>
|
|
161
|
+
event.eventKey === DyNTS_SocketEventKey.unsubscribe
|
|
162
162
|
);
|
|
163
163
|
|
|
164
164
|
if (0 <= unsubscribeEventIndex) {
|
|
165
165
|
this.unsubscribeEvent = this.incomingEvents.splice(unsubscribeEventIndex)[0];
|
|
166
|
-
|
|
166
|
+
DyFM_Log.error(
|
|
167
167
|
`You should not set the unsubscribe event, but the unsubscribe tasks, ` +
|
|
168
168
|
`in case you need additional steps for your unsubscribe.`,
|
|
169
169
|
`${this.params.name} (${this.params.port})`
|
|
170
170
|
);
|
|
171
171
|
} else {
|
|
172
|
-
this.unsubscribeEvent = new
|
|
173
|
-
eventKey:
|
|
172
|
+
this.unsubscribeEvent = new DyNTS_SocketEvent<T_SubscriptionContent>({
|
|
173
|
+
eventKey: DyNTS_SocketEventKey.unsubscribe,
|
|
174
174
|
});
|
|
175
175
|
}
|
|
176
176
|
|
|
@@ -185,8 +185,8 @@ export abstract class DynamoNTS_SocketServerService<
|
|
|
185
185
|
|
|
186
186
|
/** Setup disconnect event */
|
|
187
187
|
const disconnectEventIndex = this.incomingEvents.findIndex(
|
|
188
|
-
(event:
|
|
189
|
-
event.eventKey ===
|
|
188
|
+
(event: DyNTS_SocketEvent<any>) =>
|
|
189
|
+
event.eventKey === DyNTS_SocketEventKey.disconnect
|
|
190
190
|
);
|
|
191
191
|
|
|
192
192
|
if (0 <= disconnectEventIndex) {
|
|
@@ -194,9 +194,9 @@ export abstract class DynamoNTS_SocketServerService<
|
|
|
194
194
|
this.incomingEvents[disconnectEventIndex].tasks.push(this.disconnectBaseTask);
|
|
195
195
|
} else {
|
|
196
196
|
this.incomingEvents.push(
|
|
197
|
-
new
|
|
197
|
+
new DyNTS_SocketEvent({
|
|
198
198
|
serviceName: this.params.name,
|
|
199
|
-
eventKey:
|
|
199
|
+
eventKey: DyNTS_SocketEventKey.disconnect,
|
|
200
200
|
tasks: [
|
|
201
201
|
this.disconnectBaseTask,
|
|
202
202
|
],
|
|
@@ -206,13 +206,13 @@ export abstract class DynamoNTS_SocketServerService<
|
|
|
206
206
|
|
|
207
207
|
/** Setup error event */
|
|
208
208
|
const errorEventIndex = this.incomingEvents.findIndex(
|
|
209
|
-
(event:
|
|
209
|
+
(event: DyNTS_SocketEvent<any>) => event.eventKey === DyNTS_SocketEventKey.error
|
|
210
210
|
);
|
|
211
211
|
|
|
212
212
|
if (errorEventIndex == -1 && this.errorHandling) {
|
|
213
|
-
this.incomingEvents.push(new
|
|
213
|
+
this.incomingEvents.push(new DyNTS_SocketEvent<T_ErrorContent>({
|
|
214
214
|
serviceName: this.params.name,
|
|
215
|
-
eventKey:
|
|
215
|
+
eventKey: DyNTS_SocketEventKey.error,
|
|
216
216
|
tasks: [
|
|
217
217
|
this.errorHandling,
|
|
218
218
|
],
|
|
@@ -221,18 +221,18 @@ export abstract class DynamoNTS_SocketServerService<
|
|
|
221
221
|
|
|
222
222
|
this.subscriptionEvent.socketName = this.params.name;
|
|
223
223
|
} else {
|
|
224
|
-
|
|
224
|
+
DyFM_Log.error(
|
|
225
225
|
'getPresenceFromSubscrioptionEventContent is not set',
|
|
226
226
|
`${this.params.name} (${this.params.port})`
|
|
227
227
|
);
|
|
228
228
|
}
|
|
229
229
|
|
|
230
230
|
/** Set incoming events serviceName */
|
|
231
|
-
this.incomingEvents.forEach((event:
|
|
231
|
+
this.incomingEvents.forEach((event: DyNTS_SocketEvent<any>) => {
|
|
232
232
|
event.serviceName = this.params.name;
|
|
233
233
|
});
|
|
234
234
|
} catch (error) {
|
|
235
|
-
|
|
235
|
+
DyFM_Log.error(
|
|
236
236
|
`Socket Server Service - Event Preparation setup failed: ` +
|
|
237
237
|
`${this.params?.name} (${this.params?.port})`,
|
|
238
238
|
error
|
|
@@ -245,13 +245,13 @@ export abstract class DynamoNTS_SocketServerService<
|
|
|
245
245
|
// eslint-disable-next-line max-lines-per-function
|
|
246
246
|
async setupSocketServer(
|
|
247
247
|
newSocketServer: SocketIO.Server,
|
|
248
|
-
security:
|
|
248
|
+
security: DyNTS_SocketSecurity.open | DyNTS_SocketSecurity.secure,
|
|
249
249
|
successCallback: () => void
|
|
250
250
|
): Promise<SocketIO.Server> {
|
|
251
251
|
try {
|
|
252
252
|
if (this.logFn) console.log('\nfn:. setupSocketServer');
|
|
253
253
|
|
|
254
|
-
newSocketServer.on(
|
|
254
|
+
newSocketServer.on(DyNTS_SocketEventKey.connection, async (socket: SocketIO.Socket) => {
|
|
255
255
|
try {
|
|
256
256
|
let issuer: string;
|
|
257
257
|
|
|
@@ -259,7 +259,7 @@ export abstract class DynamoNTS_SocketServerService<
|
|
|
259
259
|
|
|
260
260
|
if (this.getPresenceFromSubscrioptionEventContent) {
|
|
261
261
|
socket.on(
|
|
262
|
-
|
|
262
|
+
DyNTS_SocketEventKey.subscribe,
|
|
263
263
|
async (content: any) => {
|
|
264
264
|
try {
|
|
265
265
|
/**
|
|
@@ -267,16 +267,16 @@ export abstract class DynamoNTS_SocketServerService<
|
|
|
267
267
|
* but subscribe event is an exception from this,
|
|
268
268
|
* to be able to check content before getPresenceFromSubscrioptionEventContent
|
|
269
269
|
*/
|
|
270
|
-
if (
|
|
271
|
-
|
|
270
|
+
if (DyNTS_globalSettings.logSocketEventContent) {
|
|
271
|
+
DyFM_Log.log(
|
|
272
272
|
`--=> incoming socket(${this.params.name}) ` +
|
|
273
|
-
`event: ${
|
|
273
|
+
`event: ${DyNTS_SocketEventKey.subscribe};` +
|
|
274
274
|
`\ncontent:`, content
|
|
275
275
|
);
|
|
276
276
|
} else {
|
|
277
|
-
|
|
277
|
+
DyFM_Log.log(
|
|
278
278
|
`--=> incoming socket(${this.params.name}) ` +
|
|
279
|
-
`event: ${
|
|
279
|
+
`event: ${DyNTS_SocketEventKey.subscribe}`
|
|
280
280
|
);
|
|
281
281
|
}
|
|
282
282
|
|
|
@@ -291,33 +291,33 @@ export abstract class DynamoNTS_SocketServerService<
|
|
|
291
291
|
await this.subscriptionEvent.executeEventTasks(content, issuer);
|
|
292
292
|
|
|
293
293
|
socket.emit(
|
|
294
|
-
|
|
294
|
+
DyNTS_SocketEventKey.subscriptionSuccessful,
|
|
295
295
|
'subscribe was successful',
|
|
296
296
|
error => {
|
|
297
|
-
|
|
297
|
+
DyFM_Log.error(
|
|
298
298
|
`Emitting subscriptionSuccessful event failed!` +
|
|
299
299
|
`\nerror:`, error
|
|
300
300
|
);
|
|
301
301
|
}
|
|
302
302
|
);
|
|
303
303
|
|
|
304
|
-
|
|
304
|
+
DyFM_Log.success(
|
|
305
305
|
`<-==> socket(${this.params.name}) subscription successfull (${issuer})`
|
|
306
306
|
);
|
|
307
307
|
} catch (error) {
|
|
308
|
-
|
|
308
|
+
DyFM_Log.error(
|
|
309
309
|
`Socket Subscription failed: ${this.params.name} ` ,
|
|
310
310
|
`(${this.params.port}) will disconnect now...`,
|
|
311
311
|
error
|
|
312
312
|
);
|
|
313
|
-
socket.emit(
|
|
313
|
+
socket.emit(DyNTS_SocketEventKey.error, error);
|
|
314
314
|
socket.disconnect();
|
|
315
315
|
}
|
|
316
316
|
}
|
|
317
317
|
);
|
|
318
318
|
|
|
319
319
|
socket.on(
|
|
320
|
-
|
|
320
|
+
DyNTS_SocketEventKey.unsubscribe,
|
|
321
321
|
async (issuer: string) => {
|
|
322
322
|
try {
|
|
323
323
|
/**
|
|
@@ -325,16 +325,16 @@ export abstract class DynamoNTS_SocketServerService<
|
|
|
325
325
|
* but unsubscribe event is an exception from this,
|
|
326
326
|
* to be able to check content before getPresenceFromSubscrioptionEventContent
|
|
327
327
|
*/
|
|
328
|
-
if (
|
|
329
|
-
|
|
328
|
+
if (DyNTS_globalSettings.logSocketEventContent) {
|
|
329
|
+
DyFM_Log.log(
|
|
330
330
|
`--=> incoming socket(${this.params.name}) ` +
|
|
331
|
-
`event: ${
|
|
331
|
+
`event: ${DyNTS_SocketEventKey.unsubscribe};` +
|
|
332
332
|
`\ncontent:`, issuer
|
|
333
333
|
);
|
|
334
334
|
} else {
|
|
335
|
-
|
|
335
|
+
DyFM_Log.log(
|
|
336
336
|
`--=> incoming socket(${this.params.name}) ` +
|
|
337
|
-
`event: ${
|
|
337
|
+
`event: ${DyNTS_SocketEventKey.unsubscribe}`
|
|
338
338
|
);
|
|
339
339
|
}
|
|
340
340
|
|
|
@@ -343,72 +343,72 @@ export abstract class DynamoNTS_SocketServerService<
|
|
|
343
343
|
await this.subscriptionEvent.executeEventTasks(issuer, issuer);
|
|
344
344
|
|
|
345
345
|
socket.emit(
|
|
346
|
-
|
|
346
|
+
DyNTS_SocketEventKey.unsubscribeSuccessful,
|
|
347
347
|
'unsubscribe was successful',
|
|
348
348
|
error => {
|
|
349
|
-
|
|
349
|
+
DyFM_Log.error(
|
|
350
350
|
`Emitting unsubscribeSuccessful event failed!` +
|
|
351
351
|
`\nerror:`, error
|
|
352
352
|
);
|
|
353
353
|
}
|
|
354
354
|
);
|
|
355
355
|
|
|
356
|
-
|
|
356
|
+
DyFM_Log.success(
|
|
357
357
|
`< x > socket(${this.params.name}) unsubscribe successfull (${issuer})`
|
|
358
358
|
);
|
|
359
359
|
} catch (error) {
|
|
360
|
-
|
|
360
|
+
DyFM_Log.error(
|
|
361
361
|
`Socket unsubscribe failed: ${this.params.name} ` ,
|
|
362
362
|
`(${this.params.port}) will disconnect now...`,
|
|
363
363
|
error
|
|
364
364
|
);
|
|
365
|
-
socket.emit(
|
|
365
|
+
socket.emit(DyNTS_SocketEventKey.error, error);
|
|
366
366
|
}
|
|
367
367
|
}
|
|
368
368
|
);
|
|
369
369
|
}
|
|
370
370
|
|
|
371
|
-
this.incomingEvents.forEach((event:
|
|
371
|
+
this.incomingEvents.forEach((event: DyNTS_SocketEvent<any>) => {
|
|
372
372
|
socket.on(
|
|
373
373
|
event.eventKey,
|
|
374
374
|
async (content: any) => {
|
|
375
375
|
try {
|
|
376
376
|
await event.executeEventTasks(content, issuer);
|
|
377
377
|
} catch (error) {
|
|
378
|
-
|
|
378
|
+
DyFM_Log.error(
|
|
379
379
|
`Socket Event failed: ${this.params.name} (${this.params.port})`,
|
|
380
380
|
error
|
|
381
381
|
);
|
|
382
|
-
socket.emit(
|
|
382
|
+
socket.emit(DyNTS_SocketEventKey.error, error);
|
|
383
383
|
}
|
|
384
384
|
}
|
|
385
385
|
);
|
|
386
386
|
});
|
|
387
387
|
|
|
388
|
-
if (
|
|
389
|
-
|
|
388
|
+
if (DyNTS_globalSettings.logMainSocketEvents) {
|
|
389
|
+
DyFM_Log.success(`< > socket(${this.params.name}): new CONNECTION established`);
|
|
390
390
|
}
|
|
391
391
|
} catch (error) {
|
|
392
|
-
|
|
392
|
+
DyFM_Log.error(
|
|
393
393
|
`Socket Connection failed: ${this.params.name} ` +
|
|
394
394
|
`(${this.params.port}) will disconnect now...`,
|
|
395
395
|
error
|
|
396
396
|
);
|
|
397
|
-
socket.emit(
|
|
397
|
+
socket.emit(DyNTS_SocketEventKey.error, error);
|
|
398
398
|
socket.disconnect();
|
|
399
399
|
}
|
|
400
400
|
});
|
|
401
401
|
|
|
402
402
|
newSocketServer.listen(this.params.port);
|
|
403
403
|
|
|
404
|
-
|
|
404
|
+
DyFM_Log.success(
|
|
405
405
|
`\nsocket server setup finished: ${this.params.name}` +
|
|
406
406
|
`\nsocket server listening on port: ${this.params.port}`
|
|
407
407
|
);
|
|
408
408
|
|
|
409
409
|
successCallback();
|
|
410
410
|
|
|
411
|
-
if (security ===
|
|
411
|
+
if (security === DyNTS_SocketSecurity.open) {
|
|
412
412
|
this.openSocketServer = newSocketServer;
|
|
413
413
|
|
|
414
414
|
return this.openSocketServer;
|
|
@@ -418,7 +418,7 @@ export abstract class DynamoNTS_SocketServerService<
|
|
|
418
418
|
return this.secureSocketServer;
|
|
419
419
|
}
|
|
420
420
|
} catch (error) {
|
|
421
|
-
|
|
421
|
+
DyFM_Log.error(
|
|
422
422
|
`Socket Server Service - Deep Setup failed: ${this.params?.name} ` +
|
|
423
423
|
`(${this.params?.port})`,
|
|
424
424
|
error
|
|
@@ -440,7 +440,7 @@ export abstract class DynamoNTS_SocketServerService<
|
|
|
440
440
|
this.presences.push(newPresence);
|
|
441
441
|
}
|
|
442
442
|
} catch (error) {
|
|
443
|
-
|
|
443
|
+
DyFM_Log.error(
|
|
444
444
|
`Socket Subscription failed: ${this.params?.name} (${this.params?.port})`,
|
|
445
445
|
error
|
|
446
446
|
);
|
|
@@ -453,9 +453,9 @@ export abstract class DynamoNTS_SocketServerService<
|
|
|
453
453
|
try {
|
|
454
454
|
await this.removeSubscription(socket, issuer);
|
|
455
455
|
|
|
456
|
-
|
|
456
|
+
DyFM_Log.info(`< x > socket(${this.params.name}) disconnected (${issuer})`);
|
|
457
457
|
} catch (error) {
|
|
458
|
-
throw new
|
|
458
|
+
throw new DyFM_Error({
|
|
459
459
|
...this._getDefaultErrorSettings(
|
|
460
460
|
'disconnectBaseTask',
|
|
461
461
|
error,
|
|
@@ -470,11 +470,11 @@ export abstract class DynamoNTS_SocketServerService<
|
|
|
470
470
|
private async removeSubscription(socket: SocketIO.Socket, issuer?: string): Promise<void> {
|
|
471
471
|
try {
|
|
472
472
|
const activePresenceIndex: number = this.presences.findIndex(
|
|
473
|
-
(pres:
|
|
473
|
+
(pres: DyNTS_SocketPresence) => pres.sockets.includes(socket)
|
|
474
474
|
);
|
|
475
475
|
|
|
476
476
|
if (activePresenceIndex === -1) {
|
|
477
|
-
throw new
|
|
477
|
+
throw new DyFM_Error({
|
|
478
478
|
...this._getDefaultErrorSettings(
|
|
479
479
|
'sendEventForId',
|
|
480
480
|
new Error(
|
|
@@ -487,10 +487,10 @@ export abstract class DynamoNTS_SocketServerService<
|
|
|
487
487
|
});
|
|
488
488
|
}
|
|
489
489
|
|
|
490
|
-
const activePresence:
|
|
490
|
+
const activePresence: DyNTS_SocketPresence = this.presences[activePresenceIndex];
|
|
491
491
|
|
|
492
492
|
if (activePresence.issuerId !== issuer) {
|
|
493
|
-
throw new
|
|
493
|
+
throw new DyFM_Error({
|
|
494
494
|
...this._getDefaultErrorSettings(
|
|
495
495
|
'sendEventForId',
|
|
496
496
|
new Error(
|
|
@@ -506,7 +506,7 @@ export abstract class DynamoNTS_SocketServerService<
|
|
|
506
506
|
const socketIndex = activePresence.sockets.findIndex((s: SocketIO.Socket) => s === socket);
|
|
507
507
|
|
|
508
508
|
if (socketIndex === -1) {
|
|
509
|
-
throw new
|
|
509
|
+
throw new DyFM_Error({
|
|
510
510
|
...this._getDefaultErrorSettings(
|
|
511
511
|
'sendEventForId',
|
|
512
512
|
new Error(
|
|
@@ -522,9 +522,9 @@ export abstract class DynamoNTS_SocketServerService<
|
|
|
522
522
|
activePresence.sockets.splice(socketIndex);
|
|
523
523
|
|
|
524
524
|
if (this.getSubscriptionCloseTasks) {
|
|
525
|
-
await
|
|
525
|
+
await DyFM_Array.asyncForEach(
|
|
526
526
|
this.getSubscriptionCloseTasks(),
|
|
527
|
-
async (task:
|
|
527
|
+
async (task: DyNTS_SocketEventTask<null>) => {
|
|
528
528
|
await task(null, issuer);
|
|
529
529
|
}
|
|
530
530
|
);
|
|
@@ -535,9 +535,9 @@ export abstract class DynamoNTS_SocketServerService<
|
|
|
535
535
|
}
|
|
536
536
|
|
|
537
537
|
socket.disconnect();
|
|
538
|
-
|
|
538
|
+
DyFM_Log.info(`<x==> socket(${this.params.name}) unsubscription successfull (${issuer})`);
|
|
539
539
|
} catch (error) {
|
|
540
|
-
throw new
|
|
540
|
+
throw new DyFM_Error({
|
|
541
541
|
...this._getDefaultErrorSettings(
|
|
542
542
|
'sendEventForId',
|
|
543
543
|
error,
|
|
@@ -552,13 +552,13 @@ export abstract class DynamoNTS_SocketServerService<
|
|
|
552
552
|
|
|
553
553
|
/* emitServerEvent(event: string, content: any): void {
|
|
554
554
|
try {
|
|
555
|
-
|
|
555
|
+
DyFM_Log.log(` <=-- emitting server socket(${this.params.name}) event: ${event}`);
|
|
556
556
|
|
|
557
557
|
this.openSocketServer.emit(event, content, error => {
|
|
558
|
-
|
|
558
|
+
DyFM_Log.error(`Emitting server event '${event}' failed!\nerror:`, error);
|
|
559
559
|
});
|
|
560
560
|
} catch (error) {
|
|
561
|
-
throw new
|
|
561
|
+
throw new DyFM_Error({
|
|
562
562
|
...this._getDefaultErrorSettings(
|
|
563
563
|
'emitEvent',
|
|
564
564
|
error
|
|
@@ -573,10 +573,10 @@ export abstract class DynamoNTS_SocketServerService<
|
|
|
573
573
|
idIsSubscribed(id: string): boolean {
|
|
574
574
|
try {
|
|
575
575
|
return !!this.presences.find(
|
|
576
|
-
(presence:
|
|
576
|
+
(presence: DyNTS_SocketPresence) => presence.issuerId === id
|
|
577
577
|
);
|
|
578
578
|
} catch (error) {
|
|
579
|
-
throw new
|
|
579
|
+
throw new DyFM_Error({
|
|
580
580
|
...this._getDefaultErrorSettings(
|
|
581
581
|
'idIsSubscribed',
|
|
582
582
|
error
|
|
@@ -590,9 +590,9 @@ export abstract class DynamoNTS_SocketServerService<
|
|
|
590
590
|
|
|
591
591
|
async emitError(presenceIssuerId: string, error: any, issuer: string): Promise<void> {
|
|
592
592
|
try {
|
|
593
|
-
await this.sendEventForId(presenceIssuerId,
|
|
593
|
+
await this.sendEventForId(presenceIssuerId, DyNTS_SocketEventKey.error, error, issuer);
|
|
594
594
|
} catch (error) {
|
|
595
|
-
throw new
|
|
595
|
+
throw new DyFM_Error({
|
|
596
596
|
...this._getDefaultErrorSettings(
|
|
597
597
|
'emitError',
|
|
598
598
|
error,
|
|
@@ -607,12 +607,12 @@ export abstract class DynamoNTS_SocketServerService<
|
|
|
607
607
|
|
|
608
608
|
async sendEventForId(id: string, event: string, content: any, issuer: string): Promise<void> {
|
|
609
609
|
try {
|
|
610
|
-
const presence:
|
|
611
|
-
(pres:
|
|
610
|
+
const presence: DyNTS_SocketPresence = this.presences.find(
|
|
611
|
+
(pres: DyNTS_SocketPresence) => pres.issuerId === id
|
|
612
612
|
);
|
|
613
613
|
|
|
614
614
|
if (!presence) {
|
|
615
|
-
throw new
|
|
615
|
+
throw new DyFM_Error({
|
|
616
616
|
...this._getDefaultErrorSettings(
|
|
617
617
|
'sendEventForId',
|
|
618
618
|
new Error(`No active socket with this specific ID: ${id}`),
|
|
@@ -626,14 +626,14 @@ export abstract class DynamoNTS_SocketServerService<
|
|
|
626
626
|
|
|
627
627
|
presence.emitEvent(event, content, issuer);
|
|
628
628
|
|
|
629
|
-
if (
|
|
630
|
-
|
|
629
|
+
if (DyNTS_globalSettings.logSocketEventContent) {
|
|
630
|
+
DyFM_Log.success(
|
|
631
631
|
` <--= emitted socket(${this.params.name}) event for presence: ${event}, ` +
|
|
632
632
|
`\n presenceId: ${id}, sockets: ${presence.sockets.length}` +
|
|
633
633
|
`\n content:`, content
|
|
634
634
|
);
|
|
635
635
|
} else {
|
|
636
|
-
|
|
636
|
+
DyFM_Log.success(
|
|
637
637
|
` <--= emitted socket(${this.params.name}) event for presence: ${event}, ` +
|
|
638
638
|
`\n presenceId: ${id}, sockets: ${presence.sockets.length}`
|
|
639
639
|
);
|
|
@@ -643,16 +643,16 @@ export abstract class DynamoNTS_SocketServerService<
|
|
|
643
643
|
if (error.flag.includes('DYNAMO') && error?.accitionalInfo?.inactiveSockets) {
|
|
644
644
|
const sockets: SocketIO.Socket[] = error.accitionalInfo.inactiveSockets;
|
|
645
645
|
|
|
646
|
-
await
|
|
646
|
+
await DyFM_Array.asyncForEach(sockets, async (socket: SocketIO.Socket) => {
|
|
647
647
|
await this.removeSubscription(socket);
|
|
648
648
|
});
|
|
649
649
|
|
|
650
|
-
const presence:
|
|
651
|
-
(pres:
|
|
650
|
+
const presence: DyNTS_SocketPresence = this.presences.find(
|
|
651
|
+
(pres: DyNTS_SocketPresence) => pres.issuerId === id
|
|
652
652
|
);
|
|
653
653
|
|
|
654
654
|
if (!presence) {
|
|
655
|
-
throw new
|
|
655
|
+
throw new DyFM_Error({
|
|
656
656
|
...this._getDefaultErrorSettings(
|
|
657
657
|
'sendEventForId',
|
|
658
658
|
new Error(`No active socket(${this.params.name}) with this specific ID: ${id}`),
|
|
@@ -665,7 +665,7 @@ export abstract class DynamoNTS_SocketServerService<
|
|
|
665
665
|
}
|
|
666
666
|
}
|
|
667
667
|
} catch (error) {
|
|
668
|
-
throw new
|
|
668
|
+
throw new DyFM_Error({
|
|
669
669
|
...this._getDefaultErrorSettings('sendEventForId', error, content?.source),
|
|
670
670
|
|
|
671
671
|
errorCode: 'NTS-SSS-310',
|
|
@@ -675,7 +675,7 @@ export abstract class DynamoNTS_SocketServerService<
|
|
|
675
675
|
});
|
|
676
676
|
}
|
|
677
677
|
|
|
678
|
-
throw new
|
|
678
|
+
throw new DyFM_Error({
|
|
679
679
|
...this._getDefaultErrorSettings('sendEventForId', error, content?.source),
|
|
680
680
|
|
|
681
681
|
errorCode: 'NTS-SSS-310',
|
|
@@ -686,15 +686,15 @@ export abstract class DynamoNTS_SocketServerService<
|
|
|
686
686
|
|
|
687
687
|
broadcastEvent(event: string, content: any, issuer: string): void {
|
|
688
688
|
try {
|
|
689
|
-
|
|
689
|
+
DyFM_Log.log(` <=-== broadcasting socket(${this.params.name}) event: ${event}`);
|
|
690
690
|
|
|
691
|
-
this.presences.forEach((presence:
|
|
691
|
+
this.presences.forEach((presence: DyNTS_SocketPresence) => {
|
|
692
692
|
presence.emitEvent(event, content, issuer);
|
|
693
693
|
});
|
|
694
694
|
} catch (error) {
|
|
695
|
-
|
|
695
|
+
DyFM_Log.error(`socket(${this.params.name}) Event Broadcast (${event}) failed`, error);
|
|
696
696
|
|
|
697
|
-
throw new
|
|
697
|
+
throw new DyFM_Error({
|
|
698
698
|
...this._getDefaultErrorSettings('broadcastEvent', error),
|
|
699
699
|
|
|
700
700
|
errorCode: 'NTS-SSS-400',
|
|
@@ -705,14 +705,14 @@ export abstract class DynamoNTS_SocketServerService<
|
|
|
705
705
|
|
|
706
706
|
private _getDefaultErrorSettings(
|
|
707
707
|
fnName: string,
|
|
708
|
-
error:
|
|
708
|
+
error: DyFM_AnyError,
|
|
709
709
|
issuer?: string
|
|
710
|
-
):
|
|
710
|
+
): DyFM_Error_Settings {
|
|
711
711
|
return {
|
|
712
|
-
status: (error as
|
|
712
|
+
status: (error as DyFM_Error)?.___status ?? 500,
|
|
713
713
|
message: (error as Error)?.message ?? `${fnName} was UNSUCCESFUL (NTS)`,
|
|
714
|
-
addECToUserMsg: !(error as
|
|
715
|
-
userMessage: (error as
|
|
714
|
+
addECToUserMsg: !(error as DyFM_Error)?.__userMessage,
|
|
715
|
+
userMessage: (error as DyFM_Error)?.__userMessage ?? this.defaultErrorUserMsg,
|
|
716
716
|
issuer: issuer,
|
|
717
717
|
issuerService: this.constructor?.name,
|
|
718
718
|
error: error,
|
|
@@ -722,40 +722,40 @@ export abstract class DynamoNTS_SocketServerService<
|
|
|
722
722
|
/**
|
|
723
723
|
* You must setup params for the service in this function
|
|
724
724
|
*/
|
|
725
|
-
protected abstract getServiceParams():
|
|
725
|
+
protected abstract getServiceParams(): DyNTS_SocketServerService_Params;
|
|
726
726
|
|
|
727
727
|
/**
|
|
728
728
|
* You must setup events and required services in this function
|
|
729
729
|
*/
|
|
730
|
-
protected abstract getIncomingEvents():
|
|
730
|
+
protected abstract getIncomingEvents(): DyNTS_SocketEvent<any>[];
|
|
731
731
|
|
|
732
732
|
/**
|
|
733
733
|
* You can setup tasks for the subscription event in this function
|
|
734
734
|
*/
|
|
735
|
-
protected getSubscriptionTasks?():
|
|
735
|
+
protected getSubscriptionTasks?(): DyNTS_SocketEventTask<T_SubscriptionContent>[];
|
|
736
736
|
|
|
737
737
|
/**
|
|
738
738
|
* You can setup tasks for the subscription event in this function
|
|
739
739
|
*/
|
|
740
|
-
protected getSubscriptionCloseTasks?():
|
|
740
|
+
protected getSubscriptionCloseTasks?(): DyNTS_SocketEventTask<null>[];
|
|
741
741
|
|
|
742
742
|
/**
|
|
743
743
|
* You can setup preprocessess for the subscription event in this function
|
|
744
744
|
*/
|
|
745
|
-
protected getSubscriptionPreProcessess?():
|
|
745
|
+
protected getSubscriptionPreProcessess?(): DyNTS_SocketEventPreprocessTask[];
|
|
746
746
|
|
|
747
747
|
/**
|
|
748
748
|
* You can setup tasks for the unsubscribe event in this function
|
|
749
749
|
*/
|
|
750
|
-
protected getUnsubscribeTasks?():
|
|
750
|
+
protected getUnsubscribeTasks?(): DyNTS_SocketEventTask<T_SubscriptionContent>[];
|
|
751
751
|
|
|
752
752
|
/**
|
|
753
753
|
* You can setup preprocessess for the unsubscribe event in this function
|
|
754
754
|
*/
|
|
755
|
-
protected getUnsubscribePreProcessess?():
|
|
755
|
+
protected getUnsubscribePreProcessess?(): DyNTS_SocketEventPreprocessTask[];
|
|
756
756
|
|
|
757
757
|
/**
|
|
758
758
|
* You can setup tasks for the error event in this function
|
|
759
759
|
*/
|
|
760
|
-
protected errorHandling?:
|
|
760
|
+
protected errorHandling?: DyNTS_SocketEventTask<T_ErrorContent>;
|
|
761
761
|
}
|