@litert/televoke 1.0.0-1 → 1.0.0-11
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/docs/Televoke_v2.md +378 -0
- package/lib/client/JsonApiClient.impl.js.map +1 -1
- package/lib/client/LegacyHttpClient.impl.d.ts +17 -16
- package/lib/client/LegacyHttpClient.impl.d.ts.map +1 -1
- package/lib/client/LegacyHttpClient.impl.js +36 -12
- package/lib/client/LegacyHttpClient.impl.js.map +1 -1
- package/lib/server/Server.decl.d.ts +2 -1
- package/lib/server/Server.decl.d.ts.map +1 -1
- package/lib/server/Server.impl.d.ts +1 -0
- package/lib/server/Server.impl.d.ts.map +1 -1
- package/lib/server/Server.impl.js +8 -1
- package/lib/server/Server.impl.js.map +1 -1
- package/lib/server/SimpleJsonApiRouter.d.ts +3 -1
- package/lib/server/SimpleJsonApiRouter.d.ts.map +1 -1
- package/lib/server/SimpleJsonApiRouter.js +18 -8
- package/lib/server/SimpleJsonApiRouter.js.map +1 -1
- package/lib/shared/BinaryStream.js.map +1 -1
- package/lib/shared/BinaryStreamManager.js.map +1 -1
- package/lib/shared/Channel.impl.js.map +1 -1
- package/lib/shared/Encodings/v1/EncoderV1.js.map +1 -1
- package/lib/shared/Encodings/v2/DecoderV2.js +1 -1
- package/lib/shared/Encodings/v2/DecoderV2.js.map +1 -1
- package/lib/shared/Encodings/v2/EncoderV2.js +3 -3
- package/lib/shared/Encodings/v2/EncoderV2.js.map +1 -1
- package/lib/shared/Errors.d.ts +2 -0
- package/lib/shared/Errors.d.ts.map +1 -1
- package/lib/shared/Errors.js +2 -0
- package/lib/shared/Errors.js.map +1 -1
- package/lib/shared/Utils.js.map +1 -1
- package/lib/transporters/http-listener/HttpListener.d.ts.map +1 -1
- package/lib/transporters/http-listener/HttpListener.js +1 -0
- package/lib/transporters/http-listener/HttpListener.js.map +1 -1
- package/lib/transporters/http-listener/HttpUnixSocketListener.js.map +1 -1
- package/lib/transporters/http-listener/HttpsListener.js.map +1 -1
- package/lib/transporters/legacy-http/LegacyHttp.Server.d.ts.map +1 -1
- package/lib/transporters/legacy-http/LegacyHttp.Server.js +22 -15
- package/lib/transporters/legacy-http/LegacyHttp.Server.js.map +1 -1
- package/lib/transporters/legacy-http/LegacyHttp.Transporter.js.map +1 -1
- package/lib/transporters/lwdfx/LwDFX.Tcp.Server.js.map +1 -1
- package/lib/transporters/lwdfx/LwDFX.Tls.Server.js.map +1 -1
- package/lib/transporters/lwdfx/LwDFX.Transporter.js.map +1 -1
- package/lib/transporters/lwdfx/LwDFX.UnixSocket.Server.js.map +1 -1
- package/lib/transporters/memory/Memory.Impl.js.map +1 -1
- package/lib/transporters/websocket/WebSocket.Server.d.ts +11 -1
- package/lib/transporters/websocket/WebSocket.Server.d.ts.map +1 -1
- package/lib/transporters/websocket/WebSocket.Server.js +4 -3
- package/lib/transporters/websocket/WebSocket.Server.js.map +1 -1
- package/lib/transporters/websocket/WebSocket.Transporter.js.map +1 -1
- package/package.json +8 -8
- package/src/lib/client/LegacyHttpClient.impl.ts +64 -32
- package/src/lib/server/Server.decl.ts +3 -1
- package/src/lib/server/Server.impl.ts +10 -1
- package/src/lib/server/SimpleJsonApiRouter.ts +22 -10
- package/src/lib/shared/Encodings/v2/DecoderV2.ts +1 -1
- package/src/lib/shared/Encodings/v2/EncoderV2.ts +3 -3
- package/src/lib/shared/Errors.ts +2 -0
- package/src/lib/transporters/http-listener/HttpListener.ts +1 -0
- package/src/lib/transporters/legacy-http/LegacyHttp.Server.ts +38 -21
- package/src/lib/transporters/websocket/WebSocket.Server.ts +16 -1
|
@@ -27,7 +27,7 @@ const encoder = new v1.TvEncoderV1();
|
|
|
27
27
|
const INVALID_REQUEST_RESPONSE = Buffer.from(encoder.encodeApiErrorResponse(
|
|
28
28
|
'null',
|
|
29
29
|
Shared.Encodings.v1.EResponseCode.MALFORMED_ARGUMENTS,
|
|
30
|
-
'INVALID REQUEST',
|
|
30
|
+
'"INVALID REQUEST"',
|
|
31
31
|
0
|
|
32
32
|
));
|
|
33
33
|
|
|
@@ -76,6 +76,19 @@ class LegacyHttpGateway extends EventEmitter implements dT.IGateway {
|
|
|
76
76
|
.setLegacyApiProcessor(this._onRequest);
|
|
77
77
|
}
|
|
78
78
|
|
|
79
|
+
private _sendResponse(resp: Http.ServerResponse, data: string): void {
|
|
80
|
+
|
|
81
|
+
try {
|
|
82
|
+
|
|
83
|
+
resp.setHeader('content-length', Buffer.byteLength(data));
|
|
84
|
+
resp.end(data);
|
|
85
|
+
}
|
|
86
|
+
catch (e) {
|
|
87
|
+
|
|
88
|
+
this.emit('error', e);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
79
92
|
public get running(): boolean {
|
|
80
93
|
|
|
81
94
|
return this._listener.running;
|
|
@@ -159,7 +172,6 @@ class LegacyHttpGateway extends EventEmitter implements dT.IGateway {
|
|
|
159
172
|
refuseBadRequest(resp);
|
|
160
173
|
this.emit('error', new Shared.errors.invalid_packet({
|
|
161
174
|
reason: 'invalid_json',
|
|
162
|
-
data: buf,
|
|
163
175
|
}, e));
|
|
164
176
|
return;
|
|
165
177
|
}
|
|
@@ -169,7 +181,6 @@ class LegacyHttpGateway extends EventEmitter implements dT.IGateway {
|
|
|
169
181
|
refuseBadRequest(resp);
|
|
170
182
|
this.emit('error', new Shared.errors.invalid_packet({
|
|
171
183
|
reason: 'malformed_json',
|
|
172
|
-
data: input,
|
|
173
184
|
}));
|
|
174
185
|
return;
|
|
175
186
|
}
|
|
@@ -185,48 +196,54 @@ class LegacyHttpGateway extends EventEmitter implements dT.IGateway {
|
|
|
185
196
|
|
|
186
197
|
if (result instanceof Shared.errors.app_error) {
|
|
187
198
|
|
|
188
|
-
|
|
199
|
+
this._sendResponse(resp, encoder.encodeApiErrorResponse(
|
|
189
200
|
input.rid,
|
|
190
201
|
v1.EResponseCode.FAILURE,
|
|
191
202
|
result.message,
|
|
192
203
|
recvAt
|
|
193
|
-
);
|
|
194
|
-
|
|
195
|
-
resp.setHeader('content-length', Buffer.byteLength(data));
|
|
196
|
-
resp.end(data);
|
|
204
|
+
));
|
|
197
205
|
}
|
|
198
206
|
else if (result instanceof Shared.errors.api_not_found) {
|
|
199
207
|
|
|
200
|
-
|
|
208
|
+
this._sendResponse(resp, encoder.encodeApiErrorResponse(
|
|
201
209
|
input.rid,
|
|
202
210
|
v1.EResponseCode.API_NOT_FOUND,
|
|
203
211
|
'null',
|
|
204
212
|
recvAt
|
|
205
|
-
);
|
|
206
|
-
|
|
207
|
-
resp.setHeader('content-length', Buffer.byteLength(data));
|
|
208
|
-
resp.end(data);
|
|
213
|
+
));
|
|
209
214
|
}
|
|
210
215
|
else {
|
|
211
216
|
|
|
212
|
-
|
|
217
|
+
this._sendResponse(resp, encoder.encodeApiErrorResponse(
|
|
213
218
|
input.rid,
|
|
214
219
|
v1.EResponseCode.SYSTEM_ERROR,
|
|
215
220
|
'null',
|
|
216
221
|
recvAt
|
|
217
|
-
);
|
|
218
|
-
|
|
219
|
-
resp.setHeader('content-length', Buffer.byteLength(data));
|
|
220
|
-
resp.end(data);
|
|
222
|
+
));
|
|
221
223
|
}
|
|
222
224
|
|
|
223
225
|
return;
|
|
224
226
|
}
|
|
225
227
|
|
|
226
|
-
|
|
228
|
+
let data: string;
|
|
229
|
+
|
|
230
|
+
try {
|
|
231
|
+
|
|
232
|
+
data = encoder.encodeApiOkResponse(input.rid, result ?? null, recvAt);
|
|
233
|
+
}
|
|
234
|
+
catch (e) {
|
|
235
|
+
|
|
236
|
+
data = encoder.encodeApiErrorResponse(
|
|
237
|
+
input.rid,
|
|
238
|
+
v1.EResponseCode.SYSTEM_ERROR,
|
|
239
|
+
'null',
|
|
240
|
+
recvAt
|
|
241
|
+
);
|
|
242
|
+
|
|
243
|
+
this.emit('error', new Shared.errors.unprocessable_error({ api: input.api }, e));
|
|
244
|
+
}
|
|
227
245
|
|
|
228
|
-
|
|
229
|
-
resp.end(data);
|
|
246
|
+
this._sendResponse(resp, data);
|
|
230
247
|
|
|
231
248
|
}, input.api, input.args, new LegacyHttpTransporter(req));
|
|
232
249
|
});
|
|
@@ -28,6 +28,7 @@ class WebSocketGateway extends EventEmitter implements dT.IGateway {
|
|
|
28
28
|
public constructor(
|
|
29
29
|
private readonly _listener: Listener.IHttpListener,
|
|
30
30
|
private readonly _server: dT.IServer,
|
|
31
|
+
timeout?: number,
|
|
31
32
|
) {
|
|
32
33
|
|
|
33
34
|
super();
|
|
@@ -38,6 +39,7 @@ class WebSocketGateway extends EventEmitter implements dT.IGateway {
|
|
|
38
39
|
|
|
39
40
|
this._wsServer = LibWS.createServer({
|
|
40
41
|
liteFrameMode: true,
|
|
42
|
+
timeout,
|
|
41
43
|
});
|
|
42
44
|
}
|
|
43
45
|
|
|
@@ -103,6 +105,18 @@ class WebSocketGateway extends EventEmitter implements dT.IGateway {
|
|
|
103
105
|
}
|
|
104
106
|
}
|
|
105
107
|
|
|
108
|
+
export interface IWebSocketGatewayOptions {
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* The timeout of WebSocket connections.
|
|
112
|
+
*
|
|
113
|
+
* > Set to 0 to disable timeout.
|
|
114
|
+
*
|
|
115
|
+
* @default 60000
|
|
116
|
+
*/
|
|
117
|
+
timeout?: number;
|
|
118
|
+
}
|
|
119
|
+
|
|
106
120
|
/**
|
|
107
121
|
* Create a WebSocket gateway.
|
|
108
122
|
*
|
|
@@ -112,7 +126,8 @@ class WebSocketGateway extends EventEmitter implements dT.IGateway {
|
|
|
112
126
|
export function createWebsocketGateway(
|
|
113
127
|
listener: Listener.IHttpListener,
|
|
114
128
|
server: dT.IServer,
|
|
129
|
+
options: IWebSocketGatewayOptions = {}
|
|
115
130
|
): dT.IGateway {
|
|
116
131
|
|
|
117
|
-
return new WebSocketGateway(listener, server);
|
|
132
|
+
return new WebSocketGateway(listener, server, options.timeout);
|
|
118
133
|
}
|