exodus-framework 2.0.849 → 2.0.852
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/lib/app/classes/broadcast.d.ts +0 -1
- package/lib/app/classes/broadcast.d.ts.map +1 -1
- package/lib/app/classes/broadcast.js +7 -4
- package/lib/app/classes/communication.d.ts +10 -1
- package/lib/app/classes/communication.d.ts.map +1 -1
- package/lib/app/classes/communication.js +47 -1
- package/lib/app/classes/communicationcontext.d.ts +1 -0
- package/lib/app/classes/communicationcontext.d.ts.map +1 -0
- package/lib/app/classes/communicationcontext.js +1 -0
- package/lib/app/classes/event.d.ts +2 -2
- package/lib/app/classes/event.d.ts.map +1 -1
- package/lib/app/classes/event.js +8 -2
- package/lib/app/classes/index.d.ts +10 -0
- package/lib/app/classes/index.d.ts.map +1 -0
- package/lib/app/classes/index.js +93 -0
- package/lib/app/classes/managed.d.ts +1 -20
- package/lib/app/classes/managed.d.ts.map +1 -1
- package/lib/app/classes/managed.js +54 -141
- package/lib/app/classes/socket/handler.d.ts +20 -0
- package/lib/app/classes/socket/handler.d.ts.map +1 -0
- package/lib/app/classes/socket/handler.js +41 -0
- package/lib/app/classes/socket/index.d.ts +2 -0
- package/lib/app/classes/socket/index.d.ts.map +1 -0
- package/lib/app/classes/socket/index.js +13 -0
- package/lib/app/controller.d.ts +5 -5
- package/lib/app/controller.d.ts.map +1 -1
- package/lib/app/controller.js +7 -7
- package/lib/app/index.d.ts +1 -3
- package/lib/app/index.d.ts.map +1 -1
- package/lib/app/index.js +12 -24
- package/lib/services/socket.d.ts +4 -2
- package/lib/services/socket.d.ts.map +1 -1
- package/lib/services/socket.js +49 -8
- package/package.json +1 -1
@@ -5,7 +5,6 @@ declare class Broadcast extends Managed {
|
|
5
5
|
protected onMasterInit(): void;
|
6
6
|
protected onClusterInit(): void;
|
7
7
|
private masterReceiveMessage;
|
8
|
-
private clusterMessage;
|
9
8
|
broadcastMessage(message: any): void;
|
10
9
|
sendMessageToCluster(clusterId: number, eventKey: string, data: any): void;
|
11
10
|
sendMessageToMaster(eventKey: string, data: any): void;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"broadcast.d.ts","sourceRoot":"","sources":["../../../src/app/classes/broadcast.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEjC,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;
|
1
|
+
{"version":3,"file":"broadcast.d.ts","sourceRoot":"","sources":["../../../src/app/classes/broadcast.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEjC,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAShE,cAAM,SAAU,SAAQ,OAAO;IAC7B,SAAS,CAAC,YAAY,IAAI,IAAI;IAY9B,SAAS,CAAC,aAAa,IAAI,IAAI;IAQ/B,OAAO,CAAC,oBAAoB;IAKrB,gBAAgB,CAAC,OAAO,EAAE,GAAG;IAU7B,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG;IAanE,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG;IAWtD,SAAS,CAAC,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,wBAAwB;IAGpF,SAAS,CAAC,uBAAuB,CAAC,QAAQ,EAAE,wBAAwB;CAGrE;AAED,eAAe,SAAS,CAAC"}
|
@@ -8,6 +8,12 @@ var _error = require("../error");
|
|
8
8
|
var _managed = _interopRequireDefault(require("./managed"));
|
9
9
|
var _event = _interopRequireDefault(require("./event"));
|
10
10
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
11
|
+
/**
|
12
|
+
* Gerencia a comunicação entre clusters
|
13
|
+
*
|
14
|
+
* @class Broadcast
|
15
|
+
* @extends {Managed}
|
16
|
+
*/
|
11
17
|
class Broadcast extends _managed.default {
|
12
18
|
onMasterInit() {
|
13
19
|
super.onMasterInit();
|
@@ -21,15 +27,12 @@ class Broadcast extends _managed.default {
|
|
21
27
|
}
|
22
28
|
onClusterInit() {
|
23
29
|
super.onClusterInit();
|
24
|
-
_event.default.registerProcessMessageHandle(message => this.
|
30
|
+
_event.default.registerProcessMessageHandle(message => this.onClusterReceiveMessage(message));
|
25
31
|
}
|
26
32
|
masterReceiveMessage(worker, data) {
|
27
33
|
if (!data || !data.data || !data.eventKey) return;
|
28
34
|
this.onMasterReceiveMessage(worker, data);
|
29
35
|
}
|
30
|
-
clusterMessage(message) {
|
31
|
-
this.onClusterReceiveMessage(message);
|
32
|
-
}
|
33
36
|
broadcastMessage(message) {
|
34
37
|
if (this.isCluster()) {
|
35
38
|
return;
|
@@ -3,7 +3,8 @@ import Broadcast from './broadcast';
|
|
3
3
|
import { TClusterBroadCastMessage } from '../../contracts/core';
|
4
4
|
import { Worker } from 'cluster';
|
5
5
|
import { eEventCommunication, TMappedEventCommunicationHandlers } from '../../contracts/service';
|
6
|
-
|
6
|
+
import System from './system';
|
7
|
+
export declare class RestrictEventCommunication<TransportData = any> extends Broadcast {
|
7
8
|
protected serviceName: string;
|
8
9
|
emitter: EventEmitter;
|
9
10
|
constructor(serviceName: string);
|
@@ -16,5 +17,13 @@ declare class RestrictEventCommunication<TransportData = any> extends Broadcast
|
|
16
17
|
on<T extends eEventCommunication>(key: T, handle: TMappedEventCommunicationHandlers[T]): void;
|
17
18
|
off<T extends eEventCommunication>(key: T, handle: TMappedEventCommunicationHandlers[T]): void;
|
18
19
|
}
|
20
|
+
export declare class CommunicationContext<D = any> extends System {
|
21
|
+
private rECom;
|
22
|
+
constructor();
|
23
|
+
protected sendToCluster(clusterId: number, event: string, data: D): void;
|
24
|
+
protected sendToMaster(event: string, data: D): void;
|
25
|
+
protected onMasterReceived(_worker: Worker, _eventKey: string, _data: D): void;
|
26
|
+
protected onClusterReceived(_eventKey: string, _data: D): void;
|
27
|
+
}
|
19
28
|
export default RestrictEventCommunication;
|
20
29
|
//# sourceMappingURL=communication.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"communication.d.ts","sourceRoot":"","sources":["../../../src/app/classes/communication.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,QAAQ,CAAC;AAClC,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,mBAAmB,EAAE,iCAAiC,EAAE,MAAM,yBAAyB,CAAC;
|
1
|
+
{"version":3,"file":"communication.d.ts","sourceRoot":"","sources":["../../../src/app/classes/communication.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,QAAQ,CAAC;AAClC,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,mBAAmB,EAAE,iCAAiC,EAAE,MAAM,yBAAyB,CAAC;AACjG,OAAO,MAAM,MAAM,UAAU,CAAC;AAW9B,qBAAa,0BAA0B,CAAC,aAAa,GAAG,GAAG,CAAE,SAAQ,SAAS;IAGhE,SAAS,CAAC,WAAW,EAAE,MAAM;IAFzC,OAAO,EAAE,YAAY,CAAC;gBAEA,WAAW,EAAE,MAAM;IAKlC,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa;IAI1E,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa;IAM7D,SAAS,CAAC,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,wBAAwB,GAAG,IAAI;IAMzF,SAAS,CAAC,uBAAuB,CAAC,OAAO,EAAE,wBAAwB,GAAG,IAAI;IAQ1E,SAAS,CAAC,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa;IAGvF,SAAS,CAAC,wBAAwB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa;IAIjE,EAAE,CAAC,CAAC,SAAS,mBAAmB,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,iCAAiC,CAAC,CAAC,CAAC;IAGtF,GAAG,CAAC,CAAC,SAAS,mBAAmB,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,iCAAiC,CAAC,CAAC,CAAC;CAG/F;AAUD,qBAAa,oBAAoB,CAAC,CAAC,GAAG,GAAG,CAAE,SAAQ,MAAM;IACvD,OAAO,CAAC,KAAK,CAA6B;;IAa1C,SAAS,CAAC,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAGjE,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAG7C,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAG9E,SAAS,CAAC,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;CAG/D;AAED,eAAe,0BAA0B,CAAC"}
|
@@ -3,11 +3,21 @@
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
4
4
|
value: true
|
5
5
|
});
|
6
|
-
exports.default = void 0;
|
6
|
+
exports.default = exports.RestrictEventCommunication = exports.CommunicationContext = void 0;
|
7
7
|
var _events = _interopRequireDefault(require("events"));
|
8
8
|
var _broadcast = _interopRequireDefault(require("./broadcast"));
|
9
9
|
var _service = require("../../contracts/service");
|
10
|
+
var _system = _interopRequireDefault(require("./system"));
|
10
11
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
12
|
+
/**
|
13
|
+
* Gerência a comunicação restrita à um ID/Classe
|
14
|
+
* ! Deve ser instanciada e não extendida
|
15
|
+
*
|
16
|
+
* @export
|
17
|
+
* @class RestrictEventCommunication
|
18
|
+
* @extends {Broadcast}
|
19
|
+
* @template TransportData
|
20
|
+
*/
|
11
21
|
class RestrictEventCommunication extends _broadcast.default {
|
12
22
|
emitter;
|
13
23
|
constructor(serviceName) {
|
@@ -50,4 +60,40 @@ class RestrictEventCommunication extends _broadcast.default {
|
|
50
60
|
this.emitter.off(key, handle);
|
51
61
|
}
|
52
62
|
}
|
63
|
+
|
64
|
+
/**
|
65
|
+
* Classe base voltada para a comunicação com as instancias em outros clusters
|
66
|
+
*
|
67
|
+
* @export
|
68
|
+
* @class CommunicationContext
|
69
|
+
* @extends {System}
|
70
|
+
* @template D
|
71
|
+
*/
|
72
|
+
exports.RestrictEventCommunication = RestrictEventCommunication;
|
73
|
+
class CommunicationContext extends _system.default {
|
74
|
+
rECom;
|
75
|
+
constructor() {
|
76
|
+
super();
|
77
|
+
this.rECom = new RestrictEventCommunication(this.constructor.name);
|
78
|
+
|
79
|
+
/* Listen */
|
80
|
+
this.rECom.on(_service.eEventCommunication.RECEIVED_CLUSTER_MESSAGE, this.onMasterReceived.bind(this));
|
81
|
+
this.rECom.on(_service.eEventCommunication.RECEIVED_MASTER_MESSAGE, this.onClusterReceived.bind(this));
|
82
|
+
}
|
83
|
+
|
84
|
+
/* Communication */
|
85
|
+
sendToCluster(clusterId, event, data) {
|
86
|
+
this.rECom.sendMessageToCluster(clusterId, event, data);
|
87
|
+
}
|
88
|
+
sendToMaster(event, data) {
|
89
|
+
this.rECom.sendMessageToMaster(event, data);
|
90
|
+
}
|
91
|
+
onMasterReceived(_worker, _eventKey, _data) {
|
92
|
+
return;
|
93
|
+
}
|
94
|
+
onClusterReceived(_eventKey, _data) {
|
95
|
+
return;
|
96
|
+
}
|
97
|
+
}
|
98
|
+
exports.CommunicationContext = CommunicationContext;
|
53
99
|
var _default = exports.default = RestrictEventCommunication;
|
@@ -0,0 +1 @@
|
|
1
|
+
//# sourceMappingURL=communicationcontext.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"communicationcontext.d.ts","sourceRoot":"","sources":["../../../src/app/classes/communicationcontext.ts"],"names":[],"mappings":""}
|
@@ -0,0 +1 @@
|
|
1
|
+
"use strict";
|
@@ -7,7 +7,7 @@ type cbSignal = (signal: NodeJS.Signals) => void;
|
|
7
7
|
type cbException = (err: Error) => void;
|
8
8
|
type cbRejection = (reason: unknown, promise: Promise<unknown>) => void;
|
9
9
|
type cbMessage = (message: TClusterBroadCastMessage) => void;
|
10
|
-
declare class
|
10
|
+
declare class ProcessEmitterManager extends System {
|
11
11
|
private static workerExitHandles;
|
12
12
|
private static clusterExitHandles;
|
13
13
|
private static processSIGINTHandles;
|
@@ -26,5 +26,5 @@ declare class EventManagment extends System {
|
|
26
26
|
static registerProcessMessageHandle(handle: cbMessage): void;
|
27
27
|
static Start(): void;
|
28
28
|
}
|
29
|
-
export default
|
29
|
+
export default ProcessEmitterManager;
|
30
30
|
//# sourceMappingURL=event.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../../src/app/classes/event.ts"],"names":[],"mappings":"AAAA,OAAgB,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAEhE,KAAK,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;AACrE,KAAK,aAAa,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;AAC5C,KAAK,QAAQ,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,KAAK,IAAI,CAAC;AACjD,KAAK,WAAW,GAAG,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC;AACxC,KAAK,WAAW,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;AACxE,KAAK,SAAS,GAAG,CAAC,OAAO,EAAE,wBAAwB,KAAK,IAAI,CAAC;
|
1
|
+
{"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../../src/app/classes/event.ts"],"names":[],"mappings":"AAAA,OAAgB,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAEhE,KAAK,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;AACrE,KAAK,aAAa,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;AAC5C,KAAK,QAAQ,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,KAAK,IAAI,CAAC;AACjD,KAAK,WAAW,GAAG,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC;AACxC,KAAK,WAAW,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;AACxE,KAAK,SAAS,GAAG,CAAC,OAAO,EAAE,wBAAwB,KAAK,IAAI,CAAC;AAQ7D,cAAM,qBAAsB,SAAQ,MAAM;IACxC,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAgB;IAChD,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAgB;IACjD,OAAO,CAAC,MAAM,CAAC,oBAAoB,CAAkB;IACrD,OAAO,CAAC,MAAM,CAAC,qBAAqB,CAAkB;IACtD,OAAO,CAAC,MAAM,CAAC,uBAAuB,CAAqB;IAC3D,OAAO,CAAC,MAAM,CAAC,uBAAuB,CAAqB;IAC3D,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAuB;IACxD,OAAO,CAAC,MAAM,CAAC,qBAAqB,CAAmB;IAEvD,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,MAAM;IAG9C,MAAM,CAAC,yBAAyB,CAAC,MAAM,EAAE,MAAM;IAG/C,MAAM,CAAC,2BAA2B,CAAC,MAAM,EAAE,QAAQ;IAGnD,MAAM,CAAC,4BAA4B,CAAC,MAAM,EAAE,QAAQ;IAGpD,MAAM,CAAC,8BAA8B,CAAC,MAAM,EAAE,WAAW;IAGzD,MAAM,CAAC,8BAA8B,CAAC,MAAM,EAAE,WAAW;IAGzD,MAAM,CAAC,yBAAyB,CAAC,MAAM,EAAE,aAAa;IAGtD,MAAM,CAAC,4BAA4B,CAAC,MAAM,EAAE,SAAS;IAIrD,MAAM,CAAC,KAAK;CAmDb;AAED,eAAe,qBAAqB,CAAC"}
|
package/lib/app/classes/event.js
CHANGED
@@ -7,7 +7,13 @@ exports.default = void 0;
|
|
7
7
|
var _cluster = _interopRequireDefault(require("cluster"));
|
8
8
|
var _system = _interopRequireDefault(require("./system"));
|
9
9
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
10
|
-
|
10
|
+
/**
|
11
|
+
* Classe responsável pelo gerênciamento de escutas e eventos dos sistema ON/OFF
|
12
|
+
*
|
13
|
+
* @class ProcessEmitterManager
|
14
|
+
* @extends {System}
|
15
|
+
*/
|
16
|
+
class ProcessEmitterManager extends _system.default {
|
11
17
|
static workerExitHandles = [];
|
12
18
|
static clusterExitHandles = [];
|
13
19
|
static processSIGINTHandles = [];
|
@@ -85,4 +91,4 @@ class EventManagment extends _system.default {
|
|
85
91
|
});
|
86
92
|
}
|
87
93
|
}
|
88
|
-
var _default = exports.default =
|
94
|
+
var _default = exports.default = ProcessEmitterManager;
|
@@ -0,0 +1,10 @@
|
|
1
|
+
export { default as Broadcast } from './broadcast';
|
2
|
+
export * from './communication';
|
3
|
+
export * from './servicemodel';
|
4
|
+
export { default as ProcessEmitterManager } from './event';
|
5
|
+
export { default as Managed } from './managed';
|
6
|
+
export { default as Service } from './service';
|
7
|
+
export { default as Singleton } from './singleton';
|
8
|
+
export { default as ServiceModel } from './servicemodel';
|
9
|
+
export * from './socket';
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/app/classes/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAE/B,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,cAAc,UAAU,CAAC"}
|
@@ -0,0 +1,93 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
var _exportNames = {
|
7
|
+
Broadcast: true,
|
8
|
+
ServiceModel: true,
|
9
|
+
ProcessEmitterManager: true,
|
10
|
+
Managed: true,
|
11
|
+
Service: true,
|
12
|
+
Singleton: true
|
13
|
+
};
|
14
|
+
Object.defineProperty(exports, "Broadcast", {
|
15
|
+
enumerable: true,
|
16
|
+
get: function () {
|
17
|
+
return _broadcast.default;
|
18
|
+
}
|
19
|
+
});
|
20
|
+
Object.defineProperty(exports, "Managed", {
|
21
|
+
enumerable: true,
|
22
|
+
get: function () {
|
23
|
+
return _managed.default;
|
24
|
+
}
|
25
|
+
});
|
26
|
+
Object.defineProperty(exports, "ProcessEmitterManager", {
|
27
|
+
enumerable: true,
|
28
|
+
get: function () {
|
29
|
+
return _event.default;
|
30
|
+
}
|
31
|
+
});
|
32
|
+
Object.defineProperty(exports, "Service", {
|
33
|
+
enumerable: true,
|
34
|
+
get: function () {
|
35
|
+
return _service.default;
|
36
|
+
}
|
37
|
+
});
|
38
|
+
Object.defineProperty(exports, "ServiceModel", {
|
39
|
+
enumerable: true,
|
40
|
+
get: function () {
|
41
|
+
return _servicemodel.default;
|
42
|
+
}
|
43
|
+
});
|
44
|
+
Object.defineProperty(exports, "Singleton", {
|
45
|
+
enumerable: true,
|
46
|
+
get: function () {
|
47
|
+
return _singleton.default;
|
48
|
+
}
|
49
|
+
});
|
50
|
+
var _broadcast = _interopRequireDefault(require("./broadcast"));
|
51
|
+
var _communication = require("./communication");
|
52
|
+
Object.keys(_communication).forEach(function (key) {
|
53
|
+
if (key === "default" || key === "__esModule") return;
|
54
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
55
|
+
if (key in exports && exports[key] === _communication[key]) return;
|
56
|
+
Object.defineProperty(exports, key, {
|
57
|
+
enumerable: true,
|
58
|
+
get: function () {
|
59
|
+
return _communication[key];
|
60
|
+
}
|
61
|
+
});
|
62
|
+
});
|
63
|
+
var _servicemodel = _interopRequireWildcard(require("./servicemodel"));
|
64
|
+
Object.keys(_servicemodel).forEach(function (key) {
|
65
|
+
if (key === "default" || key === "__esModule") return;
|
66
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
67
|
+
if (key in exports && exports[key] === _servicemodel[key]) return;
|
68
|
+
Object.defineProperty(exports, key, {
|
69
|
+
enumerable: true,
|
70
|
+
get: function () {
|
71
|
+
return _servicemodel[key];
|
72
|
+
}
|
73
|
+
});
|
74
|
+
});
|
75
|
+
var _event = _interopRequireDefault(require("./event"));
|
76
|
+
var _managed = _interopRequireDefault(require("./managed"));
|
77
|
+
var _service = _interopRequireDefault(require("./service"));
|
78
|
+
var _singleton = _interopRequireDefault(require("./singleton"));
|
79
|
+
var _socket = require("./socket");
|
80
|
+
Object.keys(_socket).forEach(function (key) {
|
81
|
+
if (key === "default" || key === "__esModule") return;
|
82
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
83
|
+
if (key in exports && exports[key] === _socket[key]) return;
|
84
|
+
Object.defineProperty(exports, key, {
|
85
|
+
enumerable: true,
|
86
|
+
get: function () {
|
87
|
+
return _socket[key];
|
88
|
+
}
|
89
|
+
});
|
90
|
+
});
|
91
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
92
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
93
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
@@ -4,26 +4,7 @@ declare abstract class Managed extends System {
|
|
4
4
|
private _isMaster;
|
5
5
|
private _isCluster;
|
6
6
|
constructor();
|
7
|
-
private
|
8
|
-
private initProcessHandles;
|
9
|
-
private exit;
|
10
|
-
private SIGINT;
|
11
|
-
private SIGTERM;
|
12
|
-
private uncaughtException;
|
13
|
-
private unhandledRejection;
|
14
|
-
private masterInit;
|
15
|
-
private masterExit;
|
16
|
-
private masterSIGINT;
|
17
|
-
private masterSIGTERM;
|
18
|
-
private masterUncaughtException;
|
19
|
-
private masterUnhandledRejection;
|
20
|
-
private clusterInit;
|
21
|
-
private clusterDown;
|
22
|
-
private clusterExit;
|
23
|
-
private clusterSIGINT;
|
24
|
-
private clusterSIGTERM;
|
25
|
-
private clusterUncaughtException;
|
26
|
-
private clusterUnhandledRejection;
|
7
|
+
private bindProcessEventHandlers;
|
27
8
|
protected onInit(): void;
|
28
9
|
protected onClusterInit(): void;
|
29
10
|
protected onMasterInit(): void;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"managed.d.ts","sourceRoot":"","sources":["../../../src/app/classes/managed.ts"],"names":[],"mappings":"AAAA,OAAgB,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;
|
1
|
+
{"version":3,"file":"managed.d.ts","sourceRoot":"","sources":["../../../src/app/classes/managed.ts"],"names":[],"mappings":"AAAA,OAAgB,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAG1C,OAAO,MAAM,MAAM,UAAU,CAAC;AAS9B,uBAAe,OAAQ,SAAQ,MAAM;IACnC,OAAO,CAAC,SAAS,CAAU;IAC3B,OAAO,CAAC,UAAU,CAAU;;IAS5B,OAAO,CAAC,wBAAwB;IAWhC,SAAS,CAAC,MAAM;IAYhB,SAAS,CAAC,aAAa;IACvB,SAAS,CAAC,YAAY;IAOtB,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM;IAI9B,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM;IAGrC,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM;IAGpC,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAGvE,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO;IAM1C,SAAS,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO;IAIjD,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO;IAMhD,SAAS,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO;IAM3C,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO;IAIlD,SAAS,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO;IAMjD,SAAS,CAAC,mBAAmB,CAAC,IAAI,EAAE,KAAK;IAIzC,SAAS,CAAC,0BAA0B,CAAC,IAAI,EAAE,KAAK;IAIhD,SAAS,CAAC,yBAAyB,CAAC,IAAI,EAAE,KAAK;IAM/C,SAAS,CAAC,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC;IAI3E,SAAS,CAAC,2BAA2B,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC;IAIlF,SAAS,CAAC,0BAA0B,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC;IAMjF,SAAS,CAAC,QAAQ;IAGlB,SAAS,CAAC,SAAS;IAKnB,SAAS,CAAC,UAAU;IAGpB,SAAS,CAAC,SAAS;IAMnB,SAAS,CAAC,eAAe;CAG1B;AAED,eAAe,OAAO,CAAC"}
|
@@ -5,162 +5,68 @@ Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
});
|
6
6
|
exports.default = void 0;
|
7
7
|
var _cluster = _interopRequireDefault(require("cluster"));
|
8
|
-
var _system = _interopRequireDefault(require("./system"));
|
9
|
-
var _event = _interopRequireDefault(require("./event"));
|
10
8
|
var _process = require("process");
|
9
|
+
var _event = _interopRequireDefault(require("./event"));
|
10
|
+
var _system = _interopRequireDefault(require("./system"));
|
11
11
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
12
|
+
/**
|
13
|
+
* Disponibiliza ações de controle de clusters, incluindo comunicação básica
|
14
|
+
*
|
15
|
+
* @abstract
|
16
|
+
* @class Managed
|
17
|
+
* @extends {System}
|
18
|
+
*/
|
12
19
|
class Managed extends _system.default {
|
13
20
|
_isMaster;
|
14
21
|
_isCluster;
|
15
22
|
constructor() {
|
16
23
|
super();
|
24
|
+
this.onInit();
|
25
|
+
}
|
26
|
+
|
27
|
+
//# Common
|
28
|
+
bindProcessEventHandlers() {
|
29
|
+
_event.default.registerProcessSIGINTHandle(signal => this.onSIGINT(signal));
|
30
|
+
_event.default.registerProcessSIGTERMHandle(signal => this.onSIGTERM(signal));
|
31
|
+
_event.default.registerProcessExceptionHandle(err => this.onUncaughtException(err));
|
32
|
+
_event.default.registerProcessExitHandle(code => this.onExit(code));
|
33
|
+
_event.default.registerProcessRejectionHandle((reason, promise) => this.onUnhandledRejection(reason, promise));
|
34
|
+
}
|
35
|
+
|
36
|
+
//# Init
|
37
|
+
onInit() {
|
17
38
|
if (_cluster.default.isPrimary) {
|
18
39
|
this._isMaster = true;
|
19
40
|
} else {
|
20
41
|
this._isCluster = true;
|
21
42
|
}
|
22
|
-
this.
|
43
|
+
this.bindProcessEventHandlers();
|
44
|
+
if (this.isCluster()) this.onClusterInit();
|
45
|
+
if (this.isMaster()) this.onMasterInit();
|
23
46
|
}
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
this.initProcessHandles();
|
28
|
-
this.onInit();
|
29
|
-
if (this.isCluster()) {
|
30
|
-
this.clusterInit();
|
31
|
-
}
|
32
|
-
if (this.isMaster()) {
|
33
|
-
this.masterInit();
|
34
|
-
}
|
35
|
-
}
|
36
|
-
initProcessHandles() {
|
37
|
-
_event.default.registerProcessSIGINTHandle(signal => {
|
38
|
-
this.SIGINT(signal);
|
39
|
-
if (this.isMaster()) {
|
40
|
-
this.masterSIGINT(signal);
|
41
|
-
}
|
42
|
-
if (this.isCluster()) {
|
43
|
-
this.clusterSIGINT(signal);
|
44
|
-
}
|
45
|
-
});
|
46
|
-
_event.default.registerProcessSIGTERMHandle(signal => {
|
47
|
-
this.SIGTERM(signal);
|
48
|
-
if (this.isMaster()) {
|
49
|
-
this.masterSIGTERM(signal);
|
50
|
-
}
|
51
|
-
if (this.isCluster()) {
|
52
|
-
this.clusterSIGTERM(signal);
|
53
|
-
}
|
54
|
-
});
|
55
|
-
_event.default.registerProcessExceptionHandle(err => {
|
56
|
-
this.uncaughtException(err);
|
57
|
-
if (this.isMaster()) {
|
58
|
-
this.masterUncaughtException(err);
|
59
|
-
}
|
60
|
-
if (this.isCluster()) {
|
61
|
-
this.clusterUncaughtException(err);
|
62
|
-
}
|
63
|
-
});
|
64
|
-
_event.default.registerProcessRejectionHandle((reason, promise) => {
|
65
|
-
this.unhandledRejection(reason, promise);
|
66
|
-
if (this.isMaster()) {
|
67
|
-
this.masterUnhandledRejection(reason, promise);
|
68
|
-
}
|
69
|
-
if (this.isCluster()) {
|
70
|
-
this.clusterUnhandledRejection(reason, promise);
|
71
|
-
}
|
72
|
-
});
|
73
|
-
_event.default.registerProcessExitHandle(code => {
|
74
|
-
this.exit(code);
|
75
|
-
if (this.isMaster()) {
|
76
|
-
this.masterExit(code);
|
77
|
-
}
|
78
|
-
if (this.isCluster()) {
|
79
|
-
this.clusterExit(code);
|
80
|
-
}
|
81
|
-
});
|
82
|
-
}
|
83
|
-
exit(code) {
|
84
|
-
this.onExit(code);
|
85
|
-
}
|
86
|
-
SIGINT(signal) {
|
87
|
-
this.onSIGINT(signal);
|
88
|
-
}
|
89
|
-
SIGTERM(signal) {
|
90
|
-
this.onSIGTERM(signal);
|
91
|
-
}
|
92
|
-
uncaughtException(err) {
|
93
|
-
this.onUncaughtException(err);
|
94
|
-
}
|
95
|
-
unhandledRejection(reason, promise) {
|
96
|
-
this.onUnhandledRejection(reason, promise);
|
97
|
-
}
|
98
|
-
|
99
|
-
//# Master
|
100
|
-
masterInit() {
|
101
|
-
/* const workers = this.getWorkers();
|
102
|
-
for (const id in workers) {
|
103
|
-
const worker = workers[id];
|
104
|
-
if (worker) {
|
105
|
-
worker.on('exit', (code, signal) => this.clusterDown(code, worker, signal));
|
106
|
-
}
|
107
|
-
}
|
108
|
-
*/
|
109
|
-
_event.default.registerWorkerExitHandle((code, worker, signal) => this.clusterDown(code, worker, signal));
|
110
|
-
this.onMasterInit();
|
111
|
-
}
|
112
|
-
masterExit(code) {
|
113
|
-
this.onMasterExit(code);
|
114
|
-
}
|
115
|
-
masterSIGINT(signal) {
|
116
|
-
this.onMasterSIGINT(signal);
|
117
|
-
}
|
118
|
-
masterSIGTERM(signal) {
|
119
|
-
this.onMasterSIGTERM(signal);
|
120
|
-
}
|
121
|
-
masterUncaughtException(err) {
|
122
|
-
this.onMasterUncaughtException(err);
|
123
|
-
}
|
124
|
-
masterUnhandledRejection(reason, promise) {
|
125
|
-
this.onMasterUnhandledRejection(reason, promise);
|
47
|
+
onClusterInit() {}
|
48
|
+
onMasterInit() {
|
49
|
+
_event.default.registerWorkerExitHandle((code, worker, signal) => this.onClusterDown(code, worker, signal));
|
126
50
|
}
|
127
51
|
|
128
|
-
//#
|
129
|
-
|
130
|
-
this.
|
131
|
-
|
132
|
-
clusterDown(code, worker, signal) {
|
133
|
-
this.onClusterDown(code, worker, signal);
|
134
|
-
}
|
135
|
-
clusterExit(code) {
|
136
|
-
this.onClusterExit(code);
|
137
|
-
}
|
138
|
-
clusterSIGINT(signal) {
|
139
|
-
this.clusterSIGINT(signal);
|
140
|
-
}
|
141
|
-
clusterSIGTERM(signal) {
|
142
|
-
this.onClusterSIGTERM(signal);
|
143
|
-
}
|
144
|
-
clusterUncaughtException(err) {
|
145
|
-
this.onClusterUncaughtException(err);
|
52
|
+
//# Exit
|
53
|
+
onExit(_code) {
|
54
|
+
if (this.isMaster()) this.onMasterExit(_code);
|
55
|
+
if (this.isCluster()) this.onClusterExit(_code);
|
146
56
|
}
|
147
|
-
|
148
|
-
|
57
|
+
onClusterExit(_code) {
|
58
|
+
(0, _process.exit)(_code);
|
149
59
|
}
|
150
|
-
|
151
|
-
//# Muted
|
152
|
-
onInit() {}
|
153
|
-
onClusterInit() {}
|
154
|
-
onMasterInit() {}
|
155
|
-
onExit(_code) {
|
60
|
+
onMasterExit(_code) {
|
156
61
|
(0, _process.exit)(_code);
|
157
62
|
}
|
158
|
-
onClusterExit(_code) {}
|
159
|
-
onMasterExit(_code) {}
|
160
63
|
onClusterDown(_code, _worker, _signal) {}
|
64
|
+
|
65
|
+
//# SIGINT
|
161
66
|
onSIGINT(_signal) {
|
162
67
|
this.log('Processo encerrado pelo usuário', 'especial');
|
163
|
-
(
|
68
|
+
if (this.isMaster()) this.onMasterSIGINT(_signal);
|
69
|
+
if (this.isCluster()) this.onClusterSIGINT(_signal);
|
164
70
|
}
|
165
71
|
onClusterSIGINT(_signal) {
|
166
72
|
this.log('Processo encerrado pelo usuário', 'especial');
|
@@ -170,9 +76,12 @@ class Managed extends _system.default {
|
|
170
76
|
this.log('Processo encerrado pelo usuário', 'especial');
|
171
77
|
process.exit(0);
|
172
78
|
}
|
79
|
+
|
80
|
+
//# SIGTERM
|
173
81
|
onSIGTERM(_signal) {
|
174
82
|
this.log('Processo encerrado pelo sistema', 'especial');
|
175
|
-
|
83
|
+
if (this.isMaster()) this.onMasterSIGTERM(_signal);
|
84
|
+
if (this.isCluster()) this.onClusterSIGTERM(_signal);
|
176
85
|
}
|
177
86
|
onClusterSIGTERM(_signal) {
|
178
87
|
this.log('Processo encerrado pelo sistema', 'especial');
|
@@ -182,21 +91,25 @@ class Managed extends _system.default {
|
|
182
91
|
this.log('Processo encerrado pelo sistema', 'especial');
|
183
92
|
process.exit(0);
|
184
93
|
}
|
94
|
+
|
95
|
+
//# UNCAUGHT EXCEPTION
|
185
96
|
onUncaughtException(_err) {
|
186
|
-
|
187
|
-
(
|
97
|
+
if (this.isMaster()) this.onMasterUncaughtException(_err);
|
98
|
+
if (this.isCluster()) this.onClusterUncaughtException(_err);
|
188
99
|
}
|
189
100
|
onClusterUncaughtException(_err) {
|
101
|
+
console.error('Excessão desconhecida:', _err);
|
190
102
|
throw _err;
|
191
|
-
(0, _process.exit)(1);
|
192
103
|
}
|
193
104
|
onMasterUncaughtException(_err) {
|
105
|
+
console.error('Excessão desconhecida:', _err);
|
194
106
|
throw _err;
|
195
|
-
(0, _process.exit)(1);
|
196
107
|
}
|
108
|
+
|
109
|
+
//# UNHANDLED REJECTION
|
197
110
|
onUnhandledRejection(_reason, _promise) {
|
198
|
-
|
199
|
-
(
|
111
|
+
if (this.isMaster()) this.onMasterUnhandledRejection(_reason, _promise);
|
112
|
+
if (this.isCluster()) this.onClusterUnhandledRejection(_reason, _promise);
|
200
113
|
}
|
201
114
|
onClusterUnhandledRejection(_reason, _promise) {
|
202
115
|
console.error('Rejeição não tratada em uma promessa:', _promise, 'Razão:', _reason);
|
@@ -0,0 +1,20 @@
|
|
1
|
+
import { TSocket, TSocketEventDataMap } from '../../../contracts';
|
2
|
+
import { eExecutionSide } from '../../../contracts/core';
|
3
|
+
import { System } from '../../../models';
|
4
|
+
import { SocketRequest } from '../../controller';
|
5
|
+
declare class SocketEventHandler<K extends keyof TSocketEventDataMap = any> extends System {
|
6
|
+
protected event: K;
|
7
|
+
protected side: eExecutionSide;
|
8
|
+
protected name: string;
|
9
|
+
protected active: boolean;
|
10
|
+
onInit(): void;
|
11
|
+
onConnect(_socket: TSocket): Promise<void> | void;
|
12
|
+
onDisconnect(_socket: TSocket): Promise<void> | void;
|
13
|
+
onEvent(_request: SocketRequest, ..._args: TSocketEventDataMap[K]): Promise<void> | void;
|
14
|
+
getEvent(): K;
|
15
|
+
getSide(): eExecutionSide;
|
16
|
+
getName(): string;
|
17
|
+
getActive(): boolean;
|
18
|
+
}
|
19
|
+
export default SocketEventHandler;
|
20
|
+
//# sourceMappingURL=handler.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../../src/app/classes/socket/handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,cAAM,kBAAkB,CAAC,CAAC,SAAS,MAAM,mBAAmB,GAAG,GAAG,CAAE,SAAQ,MAAM;IAChF,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC;IACnB,SAAS,CAAC,IAAI,EAAE,cAAc,CAAC;IAC/B,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC;IAEnB,MAAM,IAAI,IAAI;IAOd,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IACjD,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAGpD,OAAO,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,KAAK,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAGxF,QAAQ;IAGR,OAAO;IAGP,OAAO;IAGP,SAAS;CAGjB;AAED,eAAe,kBAAkB,CAAC"}
|
@@ -0,0 +1,41 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.default = void 0;
|
7
|
+
var _core = require("../../../contracts/core");
|
8
|
+
var _models = require("../../../models");
|
9
|
+
class SocketEventHandler extends _models.System {
|
10
|
+
event;
|
11
|
+
side;
|
12
|
+
name;
|
13
|
+
active;
|
14
|
+
onInit() {
|
15
|
+
this.side = _core.eExecutionSide.ANY;
|
16
|
+
this.name = this.constructor.name;
|
17
|
+
this.active = true;
|
18
|
+
}
|
19
|
+
|
20
|
+
/* Connection */
|
21
|
+
onConnect(_socket) {}
|
22
|
+
onDisconnect(_socket) {}
|
23
|
+
|
24
|
+
/* Event Handler */
|
25
|
+
onEvent(_request, ..._args) {}
|
26
|
+
|
27
|
+
//# Getters
|
28
|
+
getEvent() {
|
29
|
+
return this.event;
|
30
|
+
}
|
31
|
+
getSide() {
|
32
|
+
return this.side;
|
33
|
+
}
|
34
|
+
getName() {
|
35
|
+
return this.name;
|
36
|
+
}
|
37
|
+
getActive() {
|
38
|
+
return this.active;
|
39
|
+
}
|
40
|
+
}
|
41
|
+
var _default = exports.default = SocketEventHandler;
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/app/classes/socket/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,IAAI,kBAAkB,EAAC,MAAM,WAAW,CAAC"}
|
@@ -0,0 +1,13 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
Object.defineProperty(exports, "SocketEventHandler", {
|
7
|
+
enumerable: true,
|
8
|
+
get: function () {
|
9
|
+
return _handler.default;
|
10
|
+
}
|
11
|
+
});
|
12
|
+
var _handler = _interopRequireDefault(require("./handler"));
|
13
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
package/lib/app/controller.d.ts
CHANGED
@@ -1,17 +1,17 @@
|
|
1
1
|
import { NextFunction, Response } from 'express';
|
2
2
|
import { IAccount, IServiceRequestor, THttpResponse, TSocket, TSocketEventDataMap, TSocketEventHandle } from '../contracts';
|
3
|
-
import
|
4
|
-
export declare abstract class HttpController extends
|
3
|
+
import System from './classes/system';
|
4
|
+
export declare abstract class HttpController extends System {
|
5
5
|
constructor();
|
6
6
|
protected send<D = any>(objResponse: THttpResponse<D>, res: Response, next?: NextFunction): void;
|
7
7
|
protected validate(data: Record<string, any>): Promise<void>;
|
8
8
|
}
|
9
|
-
export declare abstract class SocketController extends
|
9
|
+
export declare abstract class SocketController extends System {
|
10
10
|
constructor();
|
11
11
|
protected handlerEventBind<K extends keyof TSocketEventDataMap>(cb: TSocketEventHandle<K>): (req: SocketRequest, data: TSocketEventDataMap[K]) => void;
|
12
12
|
protected bufferToData(data: Buffer): number[];
|
13
13
|
}
|
14
|
-
export declare class SocketRequest extends
|
14
|
+
export declare class SocketRequest extends System {
|
15
15
|
protected socket: TSocket;
|
16
16
|
protected event: keyof TSocketEventDataMap;
|
17
17
|
readonly auth: {
|
@@ -31,7 +31,7 @@ export declare class SocketRequest extends Managed {
|
|
31
31
|
getSocket(): TSocket;
|
32
32
|
protected dataToBuffer(data: any): Buffer;
|
33
33
|
}
|
34
|
-
export declare abstract class MessagingController extends
|
34
|
+
export declare abstract class MessagingController extends System {
|
35
35
|
constructor();
|
36
36
|
protected bufferToData(data: Buffer): number[];
|
37
37
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../src/app/controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,EACL,QAAQ,EACR,iBAAiB,EACjB,aAAa,EACb,OAAO,EACP,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,cAAc,CAAC;AAEtB,OAAO,
|
1
|
+
{"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../src/app/controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,EACL,QAAQ,EACR,iBAAiB,EACjB,aAAa,EACb,OAAO,EACP,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,cAAc,CAAC;AAEtB,OAAO,MAAM,MAAM,kBAAkB,CAAC;AAStC,8BAAsB,cAAe,SAAQ,MAAM;;IAejD,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,IAAI;IAIhG,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CAG7C;AAUD,8BAAsB,gBAAiB,SAAQ,MAAM;;IAKnD,SAAS,CAAC,gBAAgB,CAAC,CAAC,SAAS,MAAM,mBAAmB,EAAE,EAAE,EAAE,kBAAkB,CAAC,CAAC,CAAC,SAC1E,aAAa,QAAQ,mBAAmB,CAAC,CAAC,CAAC;IAM1D,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM;CAGpC;AACD,qBAAa,aAAc,SAAQ,MAAM;IAarC,SAAS,CAAC,MAAM,EAAE,OAAO;IACzB,SAAS,CAAC,KAAK,EAAE,MAAM,mBAAmB;IAb5C,QAAQ,CAAC,IAAI,EAAE;QACb,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;QACZ,OAAO,EAAE,QAAQ,CAAC;KACnB,CAAC;IACF,QAAQ,CAAC,MAAM,EAAE;QACf,EAAE,EAAE,MAAM,CAAC;KACZ,CAAC;IACF,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;IACtC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;gBAEpB,MAAM,EAAE,OAAO,EACf,KAAK,EAAE,MAAM,mBAAmB;IAS5C,IAAI,CAAC,CAAC,SAAS,MAAM,mBAAmB,GAAG,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,mBAAmB,CAAC,CAAC,CAAC;IAI5F,QAAQ;IAGR,SAAS;IAIT,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG;CAGjC;AAED,8BAAsB,mBAAoB,SAAQ,MAAM;;IAKtD,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM;CAGpC;AAED,eAAe,cAAc,CAAC"}
|
package/lib/app/controller.js
CHANGED
@@ -5,16 +5,16 @@ Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
});
|
6
6
|
exports.default = exports.SocketRequest = exports.SocketController = exports.MessagingController = exports.HttpController = void 0;
|
7
7
|
var _express = _interopRequireDefault(require("../services/express"));
|
8
|
-
var
|
8
|
+
var _system = _interopRequireDefault(require("./classes/system"));
|
9
9
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
10
10
|
/**
|
11
11
|
* Classe base dos conttrolers http
|
12
12
|
*
|
13
13
|
* @abstract
|
14
14
|
* @class Controller
|
15
|
-
* @extends {
|
15
|
+
* @extends {System}
|
16
16
|
*/
|
17
|
-
class HttpController extends
|
17
|
+
class HttpController extends _system.default {
|
18
18
|
constructor() {
|
19
19
|
super();
|
20
20
|
}
|
@@ -43,10 +43,10 @@ class HttpController extends _managed.default {
|
|
43
43
|
* @export
|
44
44
|
* @abstract
|
45
45
|
* @class SocketController
|
46
|
-
* @extends {
|
46
|
+
* @extends {System}
|
47
47
|
*/
|
48
48
|
exports.HttpController = HttpController;
|
49
|
-
class SocketController extends
|
49
|
+
class SocketController extends _system.default {
|
50
50
|
constructor() {
|
51
51
|
super();
|
52
52
|
}
|
@@ -61,7 +61,7 @@ class SocketController extends _managed.default {
|
|
61
61
|
}
|
62
62
|
}
|
63
63
|
exports.SocketController = SocketController;
|
64
|
-
class SocketRequest extends
|
64
|
+
class SocketRequest extends _system.default {
|
65
65
|
auth;
|
66
66
|
tenant;
|
67
67
|
requestor;
|
@@ -89,7 +89,7 @@ class SocketRequest extends _managed.default {
|
|
89
89
|
}
|
90
90
|
}
|
91
91
|
exports.SocketRequest = SocketRequest;
|
92
|
-
class MessagingController extends
|
92
|
+
class MessagingController extends _system.default {
|
93
93
|
constructor() {
|
94
94
|
super();
|
95
95
|
}
|
package/lib/app/index.d.ts
CHANGED
@@ -1,9 +1,7 @@
|
|
1
1
|
export { default as Exodus } from './exodus';
|
2
2
|
export * from './controller';
|
3
3
|
export * from './error';
|
4
|
+
export * from './classes';
|
4
5
|
export { default as Core } from './core';
|
5
|
-
export { default as Service } from './classes/service';
|
6
|
-
export { default as Singleton } from './classes/singleton';
|
7
|
-
export { default as ServiceModel } from './classes/servicemodel';
|
8
6
|
export { default as CoreSettings } from './settings';
|
9
7
|
//# sourceMappingURL=index.d.ts.map
|
package/lib/app/index.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/app/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAC7C,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/app/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAC7C,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,YAAY,CAAC"}
|
package/lib/app/index.js
CHANGED
@@ -6,9 +6,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
var _exportNames = {
|
7
7
|
Exodus: true,
|
8
8
|
Core: true,
|
9
|
-
Service: true,
|
10
|
-
Singleton: true,
|
11
|
-
ServiceModel: true,
|
12
9
|
CoreSettings: true
|
13
10
|
};
|
14
11
|
Object.defineProperty(exports, "Core", {
|
@@ -29,24 +26,6 @@ Object.defineProperty(exports, "Exodus", {
|
|
29
26
|
return _exodus.default;
|
30
27
|
}
|
31
28
|
});
|
32
|
-
Object.defineProperty(exports, "Service", {
|
33
|
-
enumerable: true,
|
34
|
-
get: function () {
|
35
|
-
return _service.default;
|
36
|
-
}
|
37
|
-
});
|
38
|
-
Object.defineProperty(exports, "ServiceModel", {
|
39
|
-
enumerable: true,
|
40
|
-
get: function () {
|
41
|
-
return _servicemodel.default;
|
42
|
-
}
|
43
|
-
});
|
44
|
-
Object.defineProperty(exports, "Singleton", {
|
45
|
-
enumerable: true,
|
46
|
-
get: function () {
|
47
|
-
return _singleton.default;
|
48
|
-
}
|
49
|
-
});
|
50
29
|
var _exodus = _interopRequireDefault(require("./exodus"));
|
51
30
|
var _controller = require("./controller");
|
52
31
|
Object.keys(_controller).forEach(function (key) {
|
@@ -72,9 +51,18 @@ Object.keys(_error).forEach(function (key) {
|
|
72
51
|
}
|
73
52
|
});
|
74
53
|
});
|
54
|
+
var _classes = require("./classes");
|
55
|
+
Object.keys(_classes).forEach(function (key) {
|
56
|
+
if (key === "default" || key === "__esModule") return;
|
57
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
58
|
+
if (key in exports && exports[key] === _classes[key]) return;
|
59
|
+
Object.defineProperty(exports, key, {
|
60
|
+
enumerable: true,
|
61
|
+
get: function () {
|
62
|
+
return _classes[key];
|
63
|
+
}
|
64
|
+
});
|
65
|
+
});
|
75
66
|
var _core = _interopRequireDefault(require("./core"));
|
76
|
-
var _service = _interopRequireDefault(require("./classes/service"));
|
77
|
-
var _singleton = _interopRequireDefault(require("./classes/singleton"));
|
78
|
-
var _servicemodel = _interopRequireDefault(require("./classes/servicemodel"));
|
79
67
|
var _settings = _interopRequireDefault(require("./settings"));
|
80
68
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
package/lib/services/socket.d.ts
CHANGED
@@ -2,16 +2,18 @@ import { CorsOptions, CorsOptionsDelegate } from 'cors';
|
|
2
2
|
import { Server as HttpServer } from 'http';
|
3
3
|
import { Server } from 'socket.io';
|
4
4
|
import Service from '../app/classes/service';
|
5
|
-
import
|
5
|
+
import SocketEventHandler from '../app/classes/socket/handler';
|
6
6
|
declare class SocketIOService extends Service {
|
7
7
|
server: Server;
|
8
8
|
private mainRouter;
|
9
|
+
private handles;
|
9
10
|
constructor();
|
10
11
|
onServiceClusterInit(): Promise<void>;
|
11
12
|
private onConnection;
|
12
13
|
private bindEvents;
|
13
14
|
createSocket(app: HttpServer, cors?: CorsOptions | CorsOptionsDelegate): void;
|
14
|
-
static registerRouter(router:
|
15
|
+
static registerRouter(router: SocketEventHandler[]): void;
|
16
|
+
private registerHandlers;
|
15
17
|
}
|
16
18
|
export default SocketIOService;
|
17
19
|
//# sourceMappingURL=socket.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"socket.d.ts","sourceRoot":"","sources":["../../src/services/socket.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,MAAM,CAAC;AACxD,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,MAAM,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;
|
1
|
+
{"version":3,"file":"socket.d.ts","sourceRoot":"","sources":["../../src/services/socket.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,MAAM,CAAC;AACxD,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,MAAM,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,OAAO,MAAM,wBAAwB,CAAC;AAC7C,OAAO,kBAAkB,MAAM,+BAA+B,CAAC;AAc/D,cAAM,eAAgB,SAAQ,OAAO;IAC5B,MAAM,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,OAAO,CAAoC;;IAK7C,oBAAoB;IAU1B,OAAO,CAAC,YAAY;IAgBpB,OAAO,CAAC,UAAU;IAkCX,YAAY,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,GAAE,WAAW,GAAG,mBAAqC;IAM9F,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,kBAAkB,EAAE;IAIlD,OAAO,CAAC,gBAAgB;CASzB;AAED,eAAe,eAAe,CAAC"}
|
package/lib/services/socket.js
CHANGED
@@ -5,8 +5,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
});
|
6
6
|
exports.default = void 0;
|
7
7
|
var _socket = require("socket.io");
|
8
|
-
var _controller = require("../app/controller");
|
9
8
|
var _service = _interopRequireDefault(require("../app/classes/service"));
|
9
|
+
var _controller = require("../app/controller");
|
10
|
+
var _core = require("../contracts/core");
|
10
11
|
var _authentication = require("../middlewares/authentication");
|
11
12
|
var _express = _interopRequireDefault(require("./express"));
|
12
13
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
@@ -20,27 +21,59 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
|
|
20
21
|
class SocketIOService extends _service.default {
|
21
22
|
server;
|
22
23
|
mainRouter;
|
24
|
+
handles;
|
23
25
|
constructor() {
|
24
26
|
super();
|
25
27
|
}
|
26
28
|
async onServiceClusterInit() {
|
27
29
|
if (!this.mainRouter) throw new Error('Need router'); //!sem router
|
28
|
-
|
29
|
-
this.createSocket(
|
30
|
+
|
31
|
+
this.createSocket(_express.default.singleton().getHttpServer());
|
30
32
|
this.server.on('connection', this.onConnection.bind(this));
|
33
|
+
this.registerHandlers();
|
31
34
|
this.log('Socket server created');
|
32
35
|
}
|
33
36
|
onConnection(socket) {
|
34
37
|
this.log(`${socket.id} conectado`);
|
35
|
-
socket.on('disconnect', () =>
|
38
|
+
socket.on('disconnect', () => {
|
39
|
+
this.log(`${socket.id} desconectado`);
|
40
|
+
Array.from(this.handles.values()).forEach(handlers => {
|
41
|
+
handlers.forEach(handler => handler.onDisconnect(socket));
|
42
|
+
});
|
43
|
+
});
|
44
|
+
Array.from(this.handles.values()).forEach(handlers => {
|
45
|
+
handlers.forEach(handler => handler.onConnect(socket));
|
46
|
+
});
|
36
47
|
this.bindEvents(socket);
|
37
48
|
}
|
38
49
|
bindEvents(socket) {
|
39
|
-
|
40
|
-
|
41
|
-
|
50
|
+
const handlers = Array.from(this.handles.entries());
|
51
|
+
for (const group of handlers) {
|
52
|
+
const event = group[0];
|
53
|
+
const handlers = group[1].filter(handler => {
|
54
|
+
let isSameSide = false;
|
55
|
+
switch (handler.getSide()) {
|
56
|
+
case _core.eExecutionSide.CLUSTER:
|
57
|
+
if (this.isCluster()) isSameSide = true;
|
58
|
+
break;
|
59
|
+
case _core.eExecutionSide.MASTER:
|
60
|
+
if (this.isMaster()) isSameSide = true;
|
61
|
+
break;
|
62
|
+
case _core.eExecutionSide.ANY:
|
63
|
+
isSameSide = true;
|
64
|
+
break;
|
65
|
+
}
|
66
|
+
return handler.getActive() && isSameSide;
|
42
67
|
});
|
43
|
-
|
68
|
+
handlers.forEach(handler => {
|
69
|
+
handler.onInit();
|
70
|
+
});
|
71
|
+
socket.on(event, (...args) => {
|
72
|
+
handlers.forEach(handler => {
|
73
|
+
handler.onEvent(new _controller.SocketRequest(socket, event), ...args);
|
74
|
+
});
|
75
|
+
});
|
76
|
+
}
|
44
77
|
}
|
45
78
|
createSocket(app, cors = {
|
46
79
|
origin: '*'
|
@@ -54,5 +87,13 @@ class SocketIOService extends _service.default {
|
|
54
87
|
static registerRouter(router) {
|
55
88
|
this.getService().mainRouter = router;
|
56
89
|
}
|
90
|
+
registerHandlers() {
|
91
|
+
this.mainRouter.forEach(handler => {
|
92
|
+
const event = handler.getEvent();
|
93
|
+
const group = this.handles.get(event) || [];
|
94
|
+
group.push(handler);
|
95
|
+
this.handles.set(event, group);
|
96
|
+
});
|
97
|
+
}
|
57
98
|
}
|
58
99
|
var _default = exports.default = SocketIOService;
|