@aj-shadow/z-abs-corelayer-server 0.0.0-aj-beta.221

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.
Files changed (87) hide show
  1. package/.gitattributes +26 -0
  2. package/LICENSE.txt +96 -0
  3. package/README.md +5 -0
  4. package/npm-shrinkwrap.json +13 -0
  5. package/package.json +10 -0
  6. package/project/server/_build/Server-CoreLayer-server.bld +12 -0
  7. package/project/server/_build/z-abs-corelayer-server.prj +12 -0
  8. package/project/server/communication/core-protocol/decoder.js +404 -0
  9. package/project/server/communication/core-protocol/encoder.js +503 -0
  10. package/project/server/communication/messages/messages-s-to-c/message-persistent-init-response.js +14 -0
  11. package/project/server/communication/messages/messages-s-to-c/message-persistent-publish.js +16 -0
  12. package/project/server/communication/messages/messages-s-to-c/message-ws-init.js +14 -0
  13. package/project/server/communication/messages/messages-s-to-s/service-init-request.js +17 -0
  14. package/project/server/communication/messages/messages-s-to-s/service-init-response.js +18 -0
  15. package/project/server/communication/messages/messages-s-to-s/service-offer-off.js +15 -0
  16. package/project/server/communication/messages/messages-s-to-s/service-offer-on.js +15 -0
  17. package/project/server/communication/messages/messages-s-to-s/worker-init-request.js +15 -0
  18. package/project/server/data-response.js +588 -0
  19. package/project/server/high-resolution-timestamp.js +36 -0
  20. package/project/server/log/log-config.js +107 -0
  21. package/project/server/log/log-types.js +14 -0
  22. package/project/server/log/logger-console.js +36 -0
  23. package/project/server/log/logger.js +114 -0
  24. package/project/server/node/channel-input.js +65 -0
  25. package/project/server/node/channel-output.js +39 -0
  26. package/project/server/node/clients.js +80 -0
  27. package/project/server/node/connection-address.js +24 -0
  28. package/project/server/node/connection-data-ip.js +82 -0
  29. package/project/server/node/connection-data.js +25 -0
  30. package/project/server/node/const.js +44 -0
  31. package/project/server/node/external-services.js +209 -0
  32. package/project/server/node/http-cache.js +109 -0
  33. package/project/server/node/http-proxy.js +97 -0
  34. package/project/server/node/http-request-handler.js +219 -0
  35. package/project/server/node/http-server.js +36 -0
  36. package/project/server/node/http2-server.js +67 -0
  37. package/project/server/node/https-server.js +63 -0
  38. package/project/server/node/ip-client.js +98 -0
  39. package/project/server/node/ip-server.js +63 -0
  40. package/project/server/node/ip-subscription.js +46 -0
  41. package/project/server/node/message-channel.js +98 -0
  42. package/project/server/node/node-admin.js +513 -0
  43. package/project/server/node/node-data.js +25 -0
  44. package/project/server/node/node-settings.js +352 -0
  45. package/project/server/node/node-worker.js +76 -0
  46. package/project/server/node/node.js +156 -0
  47. package/project/server/node/servers.js +168 -0
  48. package/project/server/node/ws-client.js +12 -0
  49. package/project/server/node/ws-server.js +20 -0
  50. package/project/server/node/ws-web-server.js +52 -0
  51. package/project/server/node/wss-server.js +20 -0
  52. package/project/server/node/wss-web-server.js +82 -0
  53. package/project/server/path/actor-path-build.js +29 -0
  54. package/project/server/path/actor-path-content.js +51 -0
  55. package/project/server/path/actor-path-creator.js +90 -0
  56. package/project/server/path/actor-path-data.js +487 -0
  57. package/project/server/path/actor-path-dist.js +132 -0
  58. package/project/server/path/actor-path-generated.js +202 -0
  59. package/project/server/path/actor-path-project.js +181 -0
  60. package/project/server/path/actor-path.js +57 -0
  61. package/project/server/path/paths/actor-content-paths.js +34 -0
  62. package/project/server/path/paths/actor-data-paths.js +302 -0
  63. package/project/server/path/paths/actor-generated-paths.js +99 -0
  64. package/project/server/path/paths/actor-paths.js +22 -0
  65. package/project/server/plugin-base-multi.js +484 -0
  66. package/project/server/plugin-base.js +233 -0
  67. package/project/server/plugin-component.js +92 -0
  68. package/project/server/plugin-data/client/plugin_data_ClientGet.js +18 -0
  69. package/project/server/plugin-data/dialog-file/plugin_data_DialogFileGet.js +197 -0
  70. package/project/server/plugin-data/platform/plugin_data_PlatformPing.js +19 -0
  71. package/project/server/plugin-factor-protocol.js +35 -0
  72. package/project/server/plugin-factory.js +127 -0
  73. package/project/server/plugin-lock.js +164 -0
  74. package/project/server/response-queue.js +46 -0
  75. package/project/server/responses.js +20 -0
  76. package/project/server/service/plugin-service.js +264 -0
  77. package/project/server/service/service-export.js +47 -0
  78. package/project/server/service/service-manager.js +270 -0
  79. package/project/server/service/service-requests.js +49 -0
  80. package/project/server/session-cache.js +39 -0
  81. package/project/server/session.js +23 -0
  82. package/project/server/worker/worker-channel.js +175 -0
  83. package/project/server/worker/worker-core.js +58 -0
  84. package/project/server/worker/worker-main.js +165 -0
  85. package/project/server/worker/worker-pool.js +94 -0
  86. package/project/server/worker/worker-thread.js +128 -0
  87. package/project/z-abs-corelayer-server.tree +99 -0
@@ -0,0 +1,107 @@
1
+
2
+ 'use strict';
3
+
4
+ let Clc = require('cli-color');
5
+
6
+
7
+ class LogConfig {
8
+ constructor() {
9
+ this.config = [
10
+ {
11
+ name: 'ENGINE',
12
+ type: 'ENGINE ',
13
+ color: [
14
+ Clc.black.bgWhiteBright,
15
+ Clc.black.bgWhite
16
+ ],
17
+ groups: [
18
+ {
19
+ name: 'AS',
20
+ enabled: false,
21
+ displayName: 'Actor State '
22
+ },
23
+ {
24
+ name: 'AR',
25
+ enabled: false,
26
+ displayName: 'Actor Result'
27
+ },
28
+ {
29
+ name: 'DP',
30
+ enabled: false,
31
+ displayName: 'Data Plugin '
32
+ },
33
+ {
34
+ name: 'PTH',
35
+ enabled: false,
36
+ displayName: 'Actor Paths '
37
+ },
38
+ {
39
+ name: 'BLD',
40
+ enabled: false,
41
+ displayName: 'Build Clean '
42
+ },
43
+ {
44
+ name: 'MSG',
45
+ enabled: false,
46
+ displayName: 'Message '
47
+ },
48
+ {
49
+ name: 'TC',
50
+ enabled: false,
51
+ displayName: 'Test Case '
52
+ }
53
+ ],
54
+ groupAll: false
55
+ },
56
+ {
57
+ name: 'DEBUG',
58
+ type: 'DEBUG ',
59
+ color: [
60
+ Clc.magentaBright.bgWhiteBright,
61
+ Clc.magentaBright.bgWhite
62
+ ],
63
+ groups: [
64
+ {
65
+ name: 'AC',
66
+ enabled: false,
67
+ displayName: 'Actor'
68
+ },
69
+ {
70
+ name: 'AM',
71
+ enabled: false,
72
+ displayName: 'Actor Method'
73
+ },
74
+ {
75
+ name: 'DE',
76
+ enabled: false,
77
+ displayName: 'Debug Output'
78
+ }
79
+ ],
80
+ groupAll: false
81
+ },
82
+ {
83
+ name: 'ERROR',
84
+ type: 'ERROR ',
85
+ color: [
86
+ Clc.redBright.bgWhiteBright,
87
+ Clc.redBright.bgWhite
88
+ ],
89
+ groups: [
90
+ {
91
+ name: 'ERR',
92
+ enabled: true,
93
+ displayName: 'error '
94
+ },
95
+ {
96
+ name: 'CATCH',
97
+ enabled: true,
98
+ displayName: 'Catch(e) '
99
+ }
100
+ ],
101
+ groupAll: true
102
+ },
103
+ ];
104
+ }
105
+ }
106
+
107
+ module.exports = new LogConfig();
@@ -0,0 +1,14 @@
1
+
2
+ 'use strict';
3
+
4
+
5
+ class LogTypes {
6
+ constructor() {
7
+ this.ENGINE = 0;
8
+ this.DEBUG = 1;
9
+ this.ERROR = 2;
10
+ this.name = ['Engine', 'Debug ', 'Error '];
11
+ }
12
+ }
13
+
14
+ module.exports = new LogTypes();
@@ -0,0 +1,36 @@
1
+
2
+ 'use strict';
3
+
4
+ const LogConfig = require('./log-config');
5
+ const LogTypes = require('./log-types');
6
+ const HighResolutionDate = require('z-abs-corelayer-cs/clientServer/time/high-resolution-date');
7
+ const Clc = require('cli-color');
8
+
9
+
10
+ class LoggerConsole {
11
+ constructor() {
12
+ this.id = 0;
13
+ }
14
+
15
+ log(msg) {
16
+ let id = this.id = LoggerConsole.IDS[this.id];
17
+ // setImmediate(() => {
18
+ if(msg.log.length > LoggerConsole.LOG_SIZE) {
19
+ console.log(LogConfig.config[msg.type].color[id](`${LogTypes.name[msg.type]} : ${new HighResolutionDate(msg.date).getDateMilliSeconds()} : ${LoggerConsole.PID_ZEROS[`${msg.pid}`.length]}${msg.pid} : ${msg.log.substring(0, LoggerConsole.LOG_SIZE - 3)}... : ${LogConfig.config[msg.type].groups[msg.group].displayName} : ${msg.fileName}`));
20
+ }
21
+ else {
22
+ console.log(LogConfig.config[msg.type].color[id](`${LogTypes.name[msg.type]} : ${new HighResolutionDate(msg.date).getDateMilliSeconds()} : ${LoggerConsole.PID_ZEROS[`${msg.pid}`.length]}${msg.pid} : ${msg.log}${LoggerConsole.SPACE_STORE.substring(0, LoggerConsole.LOG_SIZE - msg.log.length)} : ${LogConfig.config[msg.type].groups[msg.group].displayName} : ${msg.fileName}`));
23
+ }
24
+ if(undefined !== msg.err) {
25
+ console.log(LogConfig.config[msg.type].color[id](msg.err));
26
+ }
27
+ // });
28
+ }
29
+ }
30
+
31
+ LoggerConsole.IDS = [1, 0];
32
+ LoggerConsole.SPACE_STORE = ' ';
33
+ LoggerConsole.LOG_SIZE = 256;
34
+ LoggerConsole.PID_ZEROS = ['', ' ', ' ', ' ', ' ', ' ', ''];
35
+
36
+ module.exports = LoggerConsole;
@@ -0,0 +1,114 @@
1
+
2
+ 'use strict';
3
+
4
+ const LogConfig = require('./log-config');
5
+ const LogTypes = require('./log-types');
6
+ const HighResolutionTimestamp = require('../high-resolution-timestamp');
7
+ const LoggerConsole = require('./logger-console');
8
+
9
+
10
+ class Logger {
11
+ constructor() {
12
+ this.listener = null;
13
+ this.loggerImpl = new LoggerConsole();
14
+ // Create Constants from LogConfig. To avoid double code or exported dependencies.
15
+ LogConfig.config.forEach((config, index) => {
16
+ const groups = {}
17
+ config.groups.forEach((group, index) => {
18
+ Reflect.set(groups, group.name, index);
19
+ });
20
+ Reflect.set(this, config.name, groups);
21
+ });
22
+ }
23
+
24
+ engine(group, log, fileName) {
25
+ this._log(LogTypes.ENGINE, group, log, undefined, fileName);
26
+ }
27
+
28
+ debug(group, log, fileName) {
29
+ this._log(LogTypes.DEBUG, group, log, undefined, fileName);
30
+ }
31
+
32
+ error(group, log, err, fileName) {
33
+ this._log(LogTypes.ERROR, group, log, err, fileName);
34
+ }
35
+
36
+ isLogEngine(group) {
37
+ return (LogConfig.config[LogTypes.ENGINE].groupAll) || (LogConfig.config[LogTypes.ENGINE].groups[group].enabled);
38
+ }
39
+
40
+ isLogDebug(group) {
41
+ return (LogConfig.config[LogTypes.DEBUG].groupAll) || (LogConfig.config[LogTypes.DEBUG].groups[group].enabled);
42
+ }
43
+
44
+ isLogError(group) {
45
+ return (LogConfig.config[LogTypes.ERROR].groupAll) || (LogConfig.config[LogTypes.ERROR].groups[group].enabled);
46
+ }
47
+
48
+ addListener(listener) {
49
+ this.listener = listener;
50
+ }
51
+
52
+ clearListener() {
53
+ this.listener = null;
54
+ }
55
+
56
+ _log(type, group, log, err, fileName) {
57
+ if((LogConfig.config[type].groupAll) || (LogConfig.config[type].groups[group].enabled)) {
58
+ let date = HighResolutionTimestamp.getHighResolutionDate();
59
+ let logData = {
60
+ type: type,
61
+ date: date,
62
+ pid: process.pid,
63
+ log: log,
64
+ group: group,
65
+ err: undefined !== err ? err.message : undefined,
66
+ fileName: fileName
67
+ };
68
+ this.loggerImpl.log(logData);
69
+ if(null !== this.listener) {
70
+ this.listener(logData);
71
+ }
72
+ }
73
+ }
74
+
75
+ initTestCase(name, timestamp) {
76
+ let logTc = {
77
+ name: name,
78
+ start: HighResolutionTimestamp.getHighResolutionDate(timestamp),
79
+ stop: undefined
80
+ };
81
+ /*setImmediate(() => {
82
+ this.loggerImpl.tcStart(logTc);
83
+ });*/
84
+ return logTc;
85
+ }
86
+
87
+ exitTestCase(logTc, timestamp) {
88
+ /*logTc.stop = HighResolutionTimestamp.getHighResolutionDate(timestamp);
89
+ setImmediate(() => {
90
+ this.loggerImpl.tcStop(logTc);
91
+ });*/
92
+ }
93
+
94
+ initTestSuite(name, timestamp) {
95
+ let logTs = {
96
+ name: name,
97
+ start: HighResolutionTimestamp.getHighResolutionDate(timestamp),
98
+ stop: undefined
99
+ };
100
+ /*setImmediate(() => {
101
+ this.loggerImpl.tsStart(logTs);
102
+ });*/
103
+ return logTs;
104
+ }
105
+
106
+ exitTestSuite(logTs, timestamp) {
107
+ /*logTs.stop = HighResolutionTimestamp.getHighResolutionDate(timestamp);
108
+ setImmediate(() => {
109
+ this.loggerImpl.tsStop(logTs);
110
+ });*/
111
+ }
112
+ }
113
+
114
+ module.exports = new Logger();
@@ -0,0 +1,65 @@
1
+
2
+ 'use strict';
3
+
4
+ const Decoder = require('../communication/core-protocol/decoder');
5
+ const DeserializerMessageRequest = require('z-abs-corelayer-cs/clientServer/communication/core-protocol/deserializer-message-request');
6
+ const DeserializerMessageResponse = require('z-abs-corelayer-cs/clientServer/communication/core-protocol/deserializer-message-response');
7
+ const DeserializerMessageServiceInitRequest = require('z-abs-corelayer-cs/clientServer/communication/core-protocol/deserializer-message-service-init-request');
8
+ const TextCache = require('z-abs-corelayer-cs/clientServer/communication/cache/text-cache');
9
+ const Deserializer = require('z-abs-corelayer-cs/clientServer/communication/core-protocol/deserializer');
10
+ const AppDeserializer = require('z-abs-corelayer-cs/clientServer/communication/app-protocol/app-deserializer');
11
+ const CoreProtocolConst = require('z-abs-corelayer-cs/clientServer/communication/core-protocol/core-protocol-const');
12
+
13
+
14
+ class ChannelInput {
15
+ constructor(name) {
16
+ this.name = name;
17
+ this.textCache = new TextCache(name, process.pid);
18
+ this.deserializer = new Deserializer(Decoder, this.textCache);
19
+ this.appDeserializer = new AppDeserializer(new Decoder(this.textCache), new Decoder());
20
+ this.appDeserializer.register(CoreProtocolConst.REQUEST, null, new DeserializerMessageRequest(Deserializer.jsonFunc));
21
+ this.appDeserializer.register(CoreProtocolConst.RESPONSE, null, new DeserializerMessageResponse(Deserializer.jsonFunc));
22
+ this.appDeserializer.register(CoreProtocolConst.SERVICE_INIT_REQUEST, null, new DeserializerMessageServiceInitRequest(Deserializer.jsonFunc));
23
+ }
24
+
25
+ register(id, name, deserializer) {
26
+ this.appDeserializer.register(id, name, deserializer);
27
+ }
28
+
29
+ onMessage(msg, open) {
30
+ const coreMessage = this.deserializer.do(msg);
31
+ if(coreMessage) {
32
+ if(open) {
33
+ if(coreMessage.isBinary) {
34
+ if(coreMessage.hasTextCache) {
35
+ this.appDeserializer.doCachedText(coreMessage.cachedTextBuffer);
36
+ }
37
+ coreMessage.msg = this.appDeserializer.do(coreMessage.msgId, coreMessage.bin, null, coreMessage.isServiceAction);
38
+ }
39
+ }
40
+ return coreMessage;
41
+ }
42
+ else {
43
+ return null;
44
+ }
45
+ }
46
+
47
+ onNewMessage(msg, open, cbMessage) {
48
+ const coreMessage = this.deserializer.do(msg);
49
+ if(coreMessage) {
50
+ if(open) {
51
+ if(coreMessage.isBinary) {
52
+ if(coreMessage.hasTextCache) {
53
+ this.appDeserializer.doCachedText(coreMessage.cachedTextBuffer);
54
+ }
55
+ coreMessage.msg = this.appDeserializer.do(coreMessage.msgId, coreMessage.bin, coreMessage.isServiceAction);
56
+ }
57
+ }
58
+ cbMessage(coreMessage);
59
+ this.onNewMessage(null, open, cbMessage);
60
+ }
61
+ }
62
+ }
63
+
64
+
65
+ module.exports = ChannelInput;
@@ -0,0 +1,39 @@
1
+
2
+ 'use strict';
3
+
4
+ const Encoder = require('../communication/core-protocol/encoder');
5
+ const TextCache = require('z-abs-corelayer-cs/clientServer/communication/cache/text-cache');
6
+ const Serializer = require('z-abs-corelayer-cs/clientServer/communication/core-protocol/serializer');
7
+
8
+
9
+ class ChannelOutput {
10
+ constructor(name, channel) {
11
+ this.name = name;
12
+ this.textCache = new TextCache(name, process.pid);
13
+ this.channel = channel;
14
+ this.serializer = new Serializer(`ChannelOutput-${this.name}`, Encoder, this.textCache);
15
+ }
16
+
17
+ register(id, serializer) {
18
+ this.serializer.register(id, serializer);
19
+ }
20
+
21
+ send(msg, dataBuffers, debug, envelope) {
22
+ const buffers = this.serializer.do(msg, dataBuffers, envelope);
23
+ if(!debug) {
24
+ setImmediate((self, buffers) => {
25
+ buffers.forEach((buffer) => {
26
+ self.channel(buffer);
27
+ });
28
+ }, this, buffers);
29
+ }
30
+ else {
31
+ buffers.forEach((buffer) => {
32
+ this.channel(buffer);
33
+ });
34
+ }
35
+ }
36
+ }
37
+
38
+
39
+ module.exports = ChannelOutput;
@@ -0,0 +1,80 @@
1
+
2
+ 'use strict';
3
+
4
+ const Const = require('./const');
5
+ const TcpClient = tryRequire('z-abs-corelayer-bs/server/node/tcp-client');
6
+
7
+
8
+ class Clients {
9
+ constructor(nodeName, nodeId, nodeSettings, dataResponse) {
10
+ this.nodeName = nodeName;
11
+ this.nodeId = nodeId;
12
+ this.nodeSettings = nodeSettings;
13
+ this.dataResponse = dataResponse;
14
+ this.clients = new Map();
15
+ }
16
+
17
+ create() {
18
+ if(0 === this.nodeSettings.tcpClients.length) {
19
+ return;
20
+ }
21
+ if(TcpClient && 0 !== this.nodeSettings.tcpClients.length) {
22
+ this.nodeSettings.tcpClients.forEach((tcpClientData) => {
23
+ this._createIpClient(Const.TRANSPORT_TCP, this.dataResponse, tcpClientData);
24
+ });
25
+ }
26
+ const dependencyServiceNames = [];
27
+ this.clients.forEach((client, key) => {
28
+ if(client.serverData.dependency) {
29
+ dependencyServiceNames.push(key);
30
+ }
31
+ });
32
+ dependencyServiceNames.sort();
33
+ this.dataResponse.externalServices.addDependencyNodeNames(dependencyServiceNames);
34
+ }
35
+
36
+ start(cb) {
37
+ let pendings = this.clients.size;
38
+ if(0 === pendings) {
39
+ process.nextTick(cb);
40
+ return;
41
+ }
42
+ this.clients.forEach((client) => {
43
+ client.start(client.serverData, () => {
44
+ if(0 === --pendings) {
45
+ cb();
46
+ }
47
+ });
48
+ });
49
+ }
50
+
51
+ subscribeOnConnectionEvents(guid, eventType, name, cb) {
52
+ const client = this.clients.get(name);
53
+ if(client) {
54
+ client.ipServer.dataResponse.ipSubscription.subscribeOnConnectionEvents(guid, eventType, name, cb);
55
+ }
56
+ }
57
+
58
+ unsubscribeOnConnectionEvents(guid, eventType, name) {
59
+ const client = this.clients.get(name);
60
+ if(client) {
61
+ client.ipServer.dataResponse.ipSubscription.unsubscribeOnConnectionEvents(guid, eventType, name);
62
+ }
63
+ }
64
+
65
+ _createIpClient(type, channel, clientData) {
66
+ let client = null;
67
+ if(Const.TRANSPORT_TCP === type) {
68
+ client = new TcpClient(clientData.name, this.nodeName, this.nodeId, channel, clientData);
69
+ }
70
+ if(client) {
71
+ this.clients.set(clientData.name, client);
72
+ }
73
+ else {
74
+ console.log('ERROR');
75
+ }
76
+ }
77
+ }
78
+
79
+
80
+ module.exports = Clients;
@@ -0,0 +1,24 @@
1
+
2
+ 'use strict';
3
+
4
+
5
+ class ConnectionAddress {
6
+ constructor(localHost, localPort, remoteHost, remotePort, family) {
7
+ this.localHost = localHost;
8
+ this.localPort = localPort;
9
+ this.remoteHost = remoteHost;
10
+ this.remotePort = remotePort;
11
+ this.family = family;
12
+
13
+ this.connectionDataId = '';
14
+ this.transport = '';
15
+ }
16
+
17
+ setData(connectionDataId, transport) {
18
+ this.connectionDataId = connectionDataId;
19
+ this.transport = transport;
20
+ }
21
+ }
22
+
23
+
24
+ module.exports = ConnectionAddress;
@@ -0,0 +1,82 @@
1
+
2
+ 'use strict';
3
+
4
+ const Const = require('./const');
5
+ const ChannelInput = require('./channel-input');
6
+ const ChannelOutput = require('./channel-output');
7
+ const HighResolutionTimestamp = require('../high-resolution-timestamp');
8
+ const GuidGenerator = require('z-abs-corelayer-cs/clientServer/guid-generator');
9
+
10
+
11
+ class ConnectionDataIp {
12
+ static id = 0;
13
+
14
+ constructor(channelInputName, channelOutputName, outputCbMessage) {
15
+ this.id = GuidGenerator.create();
16
+ this.sessionCache = new Map();
17
+ this.channelInput = channelInputName ? new ChannelInput(channelInputName) : null;
18
+ this.channelOutput = channelOutputName ? new ChannelOutput(channelOutputName, outputCbMessage) : null;
19
+
20
+ this.name = '';
21
+ this.connectionAddress = null;
22
+ this.timestampConnect = HighResolutionTimestamp.getHighResolutionDate();
23
+ this.timestampDisconnect = null;
24
+
25
+ this.initialized = false;
26
+ this.nodeName = '';
27
+ this.nodeId = '';
28
+ this.nodeType = -1;
29
+ this.nodeSymbol = null;
30
+ this.frontendServices = new Set();
31
+ this.backendServices = new Set();
32
+ this.surveillanceServices = new Set();
33
+ }
34
+
35
+ setConnectionInit(name, connectionAddress) {
36
+ this.name = name;
37
+ this.connectionAddress = connectionAddress;
38
+ }
39
+
40
+ setServiceInit(nodeName, nodeId, nodeType) {
41
+ this.initialized = true;
42
+ this.nodeName = nodeName;
43
+ this.nodeId = nodeId;
44
+ this.nodeType = nodeType;
45
+ this.nodeSymbol = Symbol(`${this.nodeName}::${this.nodeId}`);
46
+ }
47
+
48
+ closed() {
49
+ this.timestampDisconnect = HighResolutionTimestamp.getHighResolutionDate();
50
+ }
51
+
52
+ addService(serviceName, offerType) {
53
+ if(Const.OFFER_FRONTEND === offerType) {
54
+ this.frontendServices.add(serviceName);
55
+ }
56
+ else if(Const.OFFER_BACKEND === offerType) {
57
+ this.backendServices.add(serviceName);
58
+ }
59
+ else if(Const.OFFER_SURVEILLANCE === offerType) {
60
+ this.surveillanceServices.add(serviceName);
61
+ }
62
+ }
63
+
64
+ deleteService(serviceName, offerType) {
65
+ if(Const.OFFER_FRONTEND === offerType) {
66
+ this.frontendServices.delete(serviceName);
67
+ }
68
+ else if(Const.OFFER_BACKEND === offerType) {
69
+ this.backendServices.delete(serviceName);
70
+ }
71
+ else if(Const.OFFER_SURVEILLANCE === offerType) {
72
+ this.surveillanceServices.delete(serviceName);
73
+ }
74
+ }
75
+
76
+ print() {
77
+ console.log(this.initialized, this.nodeName, this.serviceNames);
78
+ }
79
+ }
80
+
81
+
82
+ module.exports = ConnectionDataIp;
@@ -0,0 +1,25 @@
1
+
2
+ 'use strict';
3
+
4
+ const ChannelInput = require('./channel-input');
5
+ const ChannelOutput = require('./channel-output');
6
+ const GuidGenerator = require('z-abs-corelayer-cs/clientServer/guid-generator');
7
+
8
+
9
+ class ConnectionData {
10
+ static id = 0;
11
+
12
+ constructor(channelInputName, channelOutputName, outputCbMessage) {
13
+ this.id = GuidGenerator.create();
14
+ this.sessionCache = new Map();
15
+ this.channelInput = channelInputName ? new ChannelInput(channelInputName) : null;
16
+ this.channelOutput = channelOutputName ? new ChannelOutput(channelOutputName, outputCbMessage) : null;
17
+ }
18
+
19
+ print() {
20
+ console.log(this.initialized, this.nodeName, this.serviceNames);
21
+ }
22
+ }
23
+
24
+
25
+ module.exports = ConnectionData;
@@ -0,0 +1,44 @@
1
+
2
+ 'use strict';
3
+
4
+
5
+ class Const {
6
+ static CONNECTION_TYPE_SERVER_REST = 0;
7
+ static CONNECTION_TYPE_SERVER_IP = 1;
8
+ static CONNECTION_TYPE_SERVER_WORKER = 2;
9
+ static CONNECTION_TYPE_SERVER_WEB = 3;
10
+ static CONNECTION_TYPE_CLIENT_IP = 4;
11
+ static CONNECTION_TYPE_CLIENT_WORKER = 5;
12
+
13
+ static EVENT_TYPE_CONNECTION = 0;
14
+ static IP_EVENT_CONNECTED = 0;
15
+ static IP_EVENT_DISCONNECTED = 1;
16
+
17
+ static TRANSPORT_TCP = 0;
18
+ static TRANSPORT_TLS = 1;
19
+ static TRANSPORT_WS = 2;
20
+ static TRANSPORT_WSS = 3;
21
+ static TRANSPORT_HTTP = 4;
22
+ static TRANSPORT_HTTPS = 5;
23
+ static TRANSPORT_HTTP2 = 6;
24
+
25
+ static TRANSPORT_AS_TEXT = ['tcp', 'tls', 'ws', 'wss', 'http', 'http', 'http'];
26
+
27
+ static NODE_TYPE_FRONTEND = 0;
28
+ static NODE_TYPE_BACKEND = 1;
29
+ static NODE_TYPE_PROXY = 2;
30
+ static NODE_TYPE_SURVEILLANCE = 3;
31
+ static NODE_TYPE_WORKER = 4;
32
+
33
+ #BUILD_DEBUG_START
34
+ static NODE_TYPES = ['NODE_TYPE_FRONTEND', 'NODE_TYPE_BACKEND', 'NODE_TYPE_PROXY', 'NODE_TYPE_SURVEILLANCE', 'NODE_TYPE_WORKER'];
35
+ #BUILD_DEBUG_STOP
36
+
37
+ static OFFER_LOCAL = 0;
38
+ static OFFER_FRONTEND = 1;
39
+ static OFFER_BACKEND = 2;
40
+ static OFFER_SURVEILLANCE = 3;
41
+ }
42
+
43
+
44
+ module.exports = Const;