exodus-framework 2.1.1029 → 2.1.1031
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/socket/index.d.ts +1 -0
- package/lib/app/classes/socket/index.d.ts.map +1 -1
- package/lib/app/classes/socket/index.js +7 -0
- package/lib/app/classes/socket/ssehandler.d.ts +27 -0
- package/lib/app/classes/socket/ssehandler.d.ts.map +1 -0
- package/lib/app/classes/socket/ssehandler.js +102 -0
- package/package.json +1 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/app/classes/socket/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,iBAAiB,CAAC"}
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/app/classes/socket/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC"}
|
@@ -3,6 +3,12 @@
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
4
4
|
value: true
|
5
5
|
});
|
6
|
+
Object.defineProperty(exports, "SSEHandler", {
|
7
|
+
enumerable: true,
|
8
|
+
get: function () {
|
9
|
+
return _ssehandler.default;
|
10
|
+
}
|
11
|
+
});
|
6
12
|
Object.defineProperty(exports, "SocketClientHandler", {
|
7
13
|
enumerable: true,
|
8
14
|
get: function () {
|
@@ -17,4 +23,5 @@ Object.defineProperty(exports, "SocketEventHandler", {
|
|
17
23
|
});
|
18
24
|
var _eventhandler = _interopRequireDefault(require("./eventhandler"));
|
19
25
|
var _clienthandler = _interopRequireDefault(require("./clienthandler"));
|
26
|
+
var _ssehandler = _interopRequireDefault(require("./ssehandler"));
|
20
27
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
@@ -0,0 +1,27 @@
|
|
1
|
+
import { Request, RequestHandler, Response } from 'express';
|
2
|
+
import { eExecutionSide } from '../../../contracts/core';
|
3
|
+
import System from '../system';
|
4
|
+
declare class SSEHandler extends System {
|
5
|
+
protected request: Request;
|
6
|
+
protected response: Response;
|
7
|
+
protected side: eExecutionSide;
|
8
|
+
protected active: boolean;
|
9
|
+
protected ticketInterval: number;
|
10
|
+
protected middlewares: RequestHandler[];
|
11
|
+
private tickInterval;
|
12
|
+
constructor(request: Request, response: Response);
|
13
|
+
onInit(): Promise<void> | void;
|
14
|
+
onConnect(request: Request, res: Response): Promise<void> | void;
|
15
|
+
onAfterConnect(): Promise<void> | void;
|
16
|
+
onDisconnect(): Promise<void> | void;
|
17
|
+
onAborted(): Promise<void> | void;
|
18
|
+
onTick(): Promise<void> | void;
|
19
|
+
getSide(): eExecutionSide;
|
20
|
+
getActive(): boolean;
|
21
|
+
protected getTicketInterval(): number;
|
22
|
+
getMiddlewares(): RequestHandler<import("express-serve-static-core").ParamsDictionary, any, any, import("qs").ParsedQs, Record<string, any>>[];
|
23
|
+
protected send(event: string, data: any): void;
|
24
|
+
static handle(request: Request, res: Response): Promise<void>;
|
25
|
+
}
|
26
|
+
export default SSEHandler;
|
27
|
+
//# sourceMappingURL=ssehandler.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"ssehandler.d.ts","sourceRoot":"","sources":["../../../../src/app/classes/socket/ssehandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,MAAM,MAAM,WAAW,CAAC;AAE/B,cAAM,UAAW,SAAQ,MAAM;IAQ3B,SAAS,CAAC,OAAO,EAAE,OAAO;IAC1B,SAAS,CAAC,QAAQ,EAAE,QAAQ;IAR9B,SAAS,CAAC,IAAI,EAAE,cAAc,CAAC;IAC/B,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,cAAc,EAAE,MAAM,CAAC;IACjC,SAAS,CAAC,WAAW,EAAE,cAAc,EAAE,CAAC;IACxC,OAAO,CAAC,YAAY,CAAwB;gBAGhC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ;IAKvB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAM9B,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAWhE,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAMtC,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAUpC,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAUjC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAG9B,OAAO;IAGP,SAAS;IAGhB,SAAS,CAAC,iBAAiB;IAGpB,cAAc;IAIrB,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG;WAOnB,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ;CAyB3D;AAED,eAAe,UAAU,CAAC"}
|
@@ -0,0 +1,102 @@
|
|
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 _system = _interopRequireDefault(require("../system"));
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
10
|
+
class SSEHandler extends _system.default {
|
11
|
+
side;
|
12
|
+
active;
|
13
|
+
ticketInterval;
|
14
|
+
middlewares;
|
15
|
+
tickInterval;
|
16
|
+
constructor(request, response) {
|
17
|
+
super();
|
18
|
+
this.request = request;
|
19
|
+
this.response = response;
|
20
|
+
}
|
21
|
+
onInit() {
|
22
|
+
this.side = _core.eExecutionSide.ANY;
|
23
|
+
this.active = true;
|
24
|
+
this.ticketInterval = 3000; // 3 segundos
|
25
|
+
}
|
26
|
+
onConnect(request, res) {
|
27
|
+
this.request = request;
|
28
|
+
this.response = res;
|
29
|
+
this.response.setHeader('Content-Type', 'text/event-stream');
|
30
|
+
this.response.setHeader('Cache-Control', 'no-cache');
|
31
|
+
this.response.setHeader('Connection', 'keep-alive');
|
32
|
+
this.response.setHeader('Access-Control-Allow-Origin', '*');
|
33
|
+
this.response.setHeader('Access-Control-Allow-Headers', 'Cache-Control');
|
34
|
+
}
|
35
|
+
onAfterConnect() {
|
36
|
+
this.tickInterval = setInterval(() => {
|
37
|
+
this.onTick();
|
38
|
+
}, this.ticketInterval);
|
39
|
+
}
|
40
|
+
onDisconnect() {
|
41
|
+
if (this.tickInterval) {
|
42
|
+
clearInterval(this.tickInterval);
|
43
|
+
this.tickInterval = null;
|
44
|
+
}
|
45
|
+
if (!this.response.headersSent && !this.response.destroyed) {
|
46
|
+
this.response.end();
|
47
|
+
}
|
48
|
+
}
|
49
|
+
onAborted() {
|
50
|
+
if (this.tickInterval) {
|
51
|
+
clearInterval(this.tickInterval);
|
52
|
+
this.tickInterval = null;
|
53
|
+
}
|
54
|
+
if (!this.response.headersSent && !this.response.destroyed) {
|
55
|
+
this.response.end();
|
56
|
+
}
|
57
|
+
}
|
58
|
+
onTick() {}
|
59
|
+
|
60
|
+
//# Getters
|
61
|
+
getSide() {
|
62
|
+
return this.side;
|
63
|
+
}
|
64
|
+
getActive() {
|
65
|
+
return this.active;
|
66
|
+
}
|
67
|
+
getTicketInterval() {
|
68
|
+
return this.ticketInterval;
|
69
|
+
}
|
70
|
+
getMiddlewares() {
|
71
|
+
return this.middlewares;
|
72
|
+
}
|
73
|
+
send(event, data) {
|
74
|
+
if (!this.response.headersSent) {
|
75
|
+
this.response.write(`event: ${event}\n`);
|
76
|
+
this.response.write(`data: ${JSON.stringify(data)}\n\n`);
|
77
|
+
}
|
78
|
+
}
|
79
|
+
static async handle(request, res) {
|
80
|
+
const HandlerClass = this;
|
81
|
+
const handler = new HandlerClass(request, res);
|
82
|
+
try {
|
83
|
+
await handler.onInit();
|
84
|
+
await handler.onConnect(request, res);
|
85
|
+
|
86
|
+
// Configurar listeners para desconexão
|
87
|
+
request.on('close', () => {
|
88
|
+
handler.onDisconnect();
|
89
|
+
});
|
90
|
+
request.on('aborted', () => {
|
91
|
+
handler.onAborted();
|
92
|
+
});
|
93
|
+
await handler.onAfterConnect();
|
94
|
+
} catch (error) {
|
95
|
+
console.error('Erro ao inicializar SSE Handler:', error);
|
96
|
+
if (!res.headersSent) {
|
97
|
+
res.status(500).end();
|
98
|
+
}
|
99
|
+
}
|
100
|
+
}
|
101
|
+
}
|
102
|
+
var _default = exports.default = SSEHandler;
|