@lsby/net-core 0.7.23 → 0.7.25
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/dist/cjs/global/global.cjs +19 -0
- package/dist/cjs/global/global.d.cts +2 -0
- package/dist/cjs/index.cjs +23 -5
- package/dist/cjs/plugin/extend/custom-data.cjs +19 -0
- package/dist/cjs/plugin/extend/urlencoded.cjs +19 -0
- package/dist/cjs/plugin/extend/web-socket.cjs +21 -3
- package/dist/cjs/server/server.cjs +21 -2
- package/dist/esm/{chunk-DZJEJ3GT.js → chunk-CGLDW3PN.js} +1 -2
- package/dist/esm/{chunk-YUHN7S7X.js → chunk-GEQKQOFV.js} +3 -3
- package/dist/esm/{chunk-YITJBWMM.js → chunk-SWPAN4RD.js} +1 -1
- package/dist/esm/{chunk-VFOG5LBT.js → chunk-VNRSKOGV.js} +1 -1
- package/dist/esm/{chunk-BFL3HOQE.js → chunk-VTVWF3IE.js} +19 -0
- package/dist/esm/global/global.d.ts +2 -0
- package/dist/esm/global/global.js +1 -1
- package/dist/esm/index.js +5 -5
- package/dist/esm/plugin/extend/custom-data.js +2 -2
- package/dist/esm/plugin/extend/urlencoded.js +2 -2
- package/dist/esm/plugin/extend/web-socket.js +2 -2
- package/dist/esm/server/server.js +2 -2
- package/package.json +1 -1
|
@@ -26,13 +26,20 @@ __export(global_exports, {
|
|
|
26
26
|
module.exports = __toCommonJS(global_exports);
|
|
27
27
|
var import_ts_global = require("@lsby/ts-global");
|
|
28
28
|
var import_ts_log = require("@lsby/ts-log");
|
|
29
|
+
var import_ws = require("ws");
|
|
29
30
|
var log = new import_ts_log.Log("@lsby:net-core");
|
|
30
31
|
var WebSocket\u7BA1\u7406\u5668 = class {
|
|
31
32
|
constructor(\u8FDE\u63A5\u8868) {
|
|
32
33
|
this.\u8FDE\u63A5\u8868 = \u8FDE\u63A5\u8868;
|
|
34
|
+
this.\u5B9A\u65F6\u5668ID = setInterval(() => {
|
|
35
|
+
this.\u6E05\u7406\u65E0\u6548\u8FDE\u63A5().catch((err) => {
|
|
36
|
+
this.log.errorSync(`\u6E05\u7406\u65E0\u6548\u8FDE\u63A5\u5931\u8D25: ${err}`);
|
|
37
|
+
});
|
|
38
|
+
}, 3e4);
|
|
33
39
|
}
|
|
34
40
|
log = log.extend("@lsby:net-core").extend("WebSocket\u7BA1\u7406\u5668");
|
|
35
41
|
\u6E05\u7406\u51FD\u6570\u8868 = {};
|
|
42
|
+
\u5B9A\u65F6\u5668ID = null;
|
|
36
43
|
\u589E\u52A0\u8FDE\u63A5(id, ws\u53E5\u67C4) {
|
|
37
44
|
this.\u8FDE\u63A5\u8868[id] = ws\u53E5\u67C4;
|
|
38
45
|
}
|
|
@@ -57,6 +64,18 @@ var WebSocket\u7BA1\u7406\u5668 = class {
|
|
|
57
64
|
delete this.\u8FDE\u63A5\u8868[id];
|
|
58
65
|
delete this.\u6E05\u7406\u51FD\u6570\u8868[id];
|
|
59
66
|
}
|
|
67
|
+
async \u6E05\u7406\u65E0\u6548\u8FDE\u63A5() {
|
|
68
|
+
let \u6E05\u7406\u6570\u91CF = 0;
|
|
69
|
+
for (let [id, ws] of Object.entries(this.\u8FDE\u63A5\u8868)) {
|
|
70
|
+
if (ws === null || ws.readyState === import_ws.WebSocket.CLOSED) {
|
|
71
|
+
this.\u5220\u9664\u8FDE\u63A5(id);
|
|
72
|
+
\u6E05\u7406\u6570\u91CF++;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
if (\u6E05\u7406\u6570\u91CF > 0) {
|
|
76
|
+
this.log.infoSync(`\u6E05\u7406\u4E86 ${\u6E05\u7406\u6570\u91CF} \u4E2A\u65E0\u6548 WebSocket \u8FDE\u63A5`);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
60
79
|
};
|
|
61
80
|
var Global = new import_ts_global.GlobalService([
|
|
62
81
|
new import_ts_global.GlobalItem("log", log),
|
|
@@ -7,12 +7,14 @@ declare class WebSocket管理器 {
|
|
|
7
7
|
private 连接表;
|
|
8
8
|
private log;
|
|
9
9
|
private 清理函数表;
|
|
10
|
+
private 定时器ID;
|
|
10
11
|
constructor(连接表: Record<id, WebSocket | null>);
|
|
11
12
|
增加连接(id: id, ws句柄: WebSocket): void;
|
|
12
13
|
查询连接存在(id: string): boolean;
|
|
13
14
|
设置清理函数(id: string, 清理函数: () => Promise<void>): Promise<void>;
|
|
14
15
|
获得句柄(id: id): Promise<WebSocket | null>;
|
|
15
16
|
删除连接(id: string): void;
|
|
17
|
+
private 清理无效连接;
|
|
16
18
|
}
|
|
17
19
|
declare let Global: GlobalService<[GlobalItem<"log", Log>, GlobalItem<"WebSocket管理器", WebSocket管理器>]>;
|
|
18
20
|
|
package/dist/cjs/index.cjs
CHANGED
|
@@ -312,13 +312,20 @@ var \u4E2D\u6587\u8DEF\u5F84\u652F\u6301\u63D2\u4EF6 = class extends \u63D2\u4EF
|
|
|
312
312
|
// src/global/global.ts
|
|
313
313
|
var import_ts_global = require("@lsby/ts-global");
|
|
314
314
|
var import_ts_log = require("@lsby/ts-log");
|
|
315
|
+
var import_ws = require("ws");
|
|
315
316
|
var log = new import_ts_log.Log("@lsby:net-core");
|
|
316
317
|
var WebSocket\u7BA1\u7406\u5668 = class {
|
|
317
318
|
constructor(\u8FDE\u63A5\u8868) {
|
|
318
319
|
this.\u8FDE\u63A5\u8868 = \u8FDE\u63A5\u8868;
|
|
320
|
+
this.\u5B9A\u65F6\u5668ID = setInterval(() => {
|
|
321
|
+
this.\u6E05\u7406\u65E0\u6548\u8FDE\u63A5().catch((err) => {
|
|
322
|
+
this.log.errorSync(`\u6E05\u7406\u65E0\u6548\u8FDE\u63A5\u5931\u8D25: ${err}`);
|
|
323
|
+
});
|
|
324
|
+
}, 3e4);
|
|
319
325
|
}
|
|
320
326
|
log = log.extend("@lsby:net-core").extend("WebSocket\u7BA1\u7406\u5668");
|
|
321
327
|
\u6E05\u7406\u51FD\u6570\u8868 = {};
|
|
328
|
+
\u5B9A\u65F6\u5668ID = null;
|
|
322
329
|
\u589E\u52A0\u8FDE\u63A5(id, ws\u53E5\u67C4) {
|
|
323
330
|
this.\u8FDE\u63A5\u8868[id] = ws\u53E5\u67C4;
|
|
324
331
|
}
|
|
@@ -343,6 +350,18 @@ var WebSocket\u7BA1\u7406\u5668 = class {
|
|
|
343
350
|
delete this.\u8FDE\u63A5\u8868[id];
|
|
344
351
|
delete this.\u6E05\u7406\u51FD\u6570\u8868[id];
|
|
345
352
|
}
|
|
353
|
+
async \u6E05\u7406\u65E0\u6548\u8FDE\u63A5() {
|
|
354
|
+
let \u6E05\u7406\u6570\u91CF = 0;
|
|
355
|
+
for (let [id, ws] of Object.entries(this.\u8FDE\u63A5\u8868)) {
|
|
356
|
+
if (ws === null || ws.readyState === import_ws.WebSocket.CLOSED) {
|
|
357
|
+
this.\u5220\u9664\u8FDE\u63A5(id);
|
|
358
|
+
\u6E05\u7406\u6570\u91CF++;
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
if (\u6E05\u7406\u6570\u91CF > 0) {
|
|
362
|
+
this.log.infoSync(`\u6E05\u7406\u4E86 ${\u6E05\u7406\u6570\u91CF} \u4E2A\u65E0\u6548 WebSocket \u8FDE\u63A5`);
|
|
363
|
+
}
|
|
364
|
+
}
|
|
346
365
|
};
|
|
347
366
|
var Global = new import_ts_global.GlobalService([
|
|
348
367
|
new import_ts_global.GlobalItem("log", log),
|
|
@@ -480,7 +499,7 @@ var \u8868\u5355\u89E3\u6790\u63D2\u4EF6 = class extends \u63D2\u4EF6 {
|
|
|
480
499
|
};
|
|
481
500
|
|
|
482
501
|
// src/plugin/extend/web-socket.ts
|
|
483
|
-
var
|
|
502
|
+
var import_ws2 = require("ws");
|
|
484
503
|
var import_zod4 = require("zod");
|
|
485
504
|
var WebSocket\u63D2\u4EF6 = class extends \u63D2\u4EF6 {
|
|
486
505
|
log = Global.getItem("log");
|
|
@@ -508,14 +527,13 @@ var WebSocket\u63D2\u4EF6 = class extends \u63D2\u4EF6 {
|
|
|
508
527
|
ws\u64CD\u4F5C: {
|
|
509
528
|
async \u53D1\u9001ws\u4FE1\u606F(\u4FE1\u606F) {
|
|
510
529
|
if (ws\u53E5\u67C4 === null) {
|
|
511
|
-
await log2.debug("\u5C1D\u8BD5\u83B7\u53D6 WebSocket \u53E5\u67C4");
|
|
512
530
|
ws\u53E5\u67C4 = await WebSocket\u7BA1\u7406\u56682.\u83B7\u5F97\u53E5\u67C4(wsId);
|
|
513
531
|
}
|
|
514
532
|
if (ws\u53E5\u67C4 === null) {
|
|
515
533
|
await log2.error("\u672A\u80FD\u83B7\u53D6\u5230\u6709\u6548\u7684 WebSocket \u53E5\u67C4");
|
|
516
534
|
return;
|
|
517
535
|
}
|
|
518
|
-
if (ws\u53E5\u67C4.readyState !==
|
|
536
|
+
if (ws\u53E5\u67C4.readyState !== import_ws2.WebSocket.OPEN) {
|
|
519
537
|
await log2.warn("WebSocket \u672A\u6253\u5F00\uFF0C\u65E0\u6CD5\u53D1\u9001\u6D88\u606F", { wsId });
|
|
520
538
|
return;
|
|
521
539
|
}
|
|
@@ -549,7 +567,7 @@ var import_express3 = __toESM(require("express"), 1);
|
|
|
549
567
|
var import_promises = require("fs/promises");
|
|
550
568
|
var import_node_os = require("os");
|
|
551
569
|
var import_short_uuid = __toESM(require("short-uuid"), 1);
|
|
552
|
-
var
|
|
570
|
+
var import_ws3 = require("ws");
|
|
553
571
|
var \u670D\u52A1\u5668 = class {
|
|
554
572
|
constructor(\u63A5\u53E3\u4EEC, \u7AEF\u53E3, \u9759\u6001\u8D44\u6E90\u8DEF\u5F84, \u9ED8\u8BA4get\u6587\u4EF6\u8DEF\u5F84) {
|
|
555
573
|
this.\u63A5\u53E3\u4EEC = \u63A5\u53E3\u4EEC;
|
|
@@ -641,7 +659,7 @@ var \u670D\u52A1\u5668 = class {
|
|
|
641
659
|
await log2.info("\u63A5\u53E3\u5B8C\u6574\u6267\u884C\u8017\u65F6: %o ms", \u603B\u8017\u65F6);
|
|
642
660
|
}
|
|
643
661
|
async \u521D\u59CB\u5316WebSocket(server) {
|
|
644
|
-
let wss = new
|
|
662
|
+
let wss = new import_ws3.WebSocketServer({ server });
|
|
645
663
|
let logBase = await this.log;
|
|
646
664
|
wss.on("listening", async () => {
|
|
647
665
|
let log2 = logBase;
|
|
@@ -27,13 +27,20 @@ module.exports = __toCommonJS(custom_data_exports);
|
|
|
27
27
|
// src/global/global.ts
|
|
28
28
|
var import_ts_global = require("@lsby/ts-global");
|
|
29
29
|
var import_ts_log = require("@lsby/ts-log");
|
|
30
|
+
var import_ws = require("ws");
|
|
30
31
|
var log = new import_ts_log.Log("@lsby:net-core");
|
|
31
32
|
var WebSocket\u7BA1\u7406\u5668 = class {
|
|
32
33
|
constructor(\u8FDE\u63A5\u8868) {
|
|
33
34
|
this.\u8FDE\u63A5\u8868 = \u8FDE\u63A5\u8868;
|
|
35
|
+
this.\u5B9A\u65F6\u5668ID = setInterval(() => {
|
|
36
|
+
this.\u6E05\u7406\u65E0\u6548\u8FDE\u63A5().catch((err) => {
|
|
37
|
+
this.log.errorSync(`\u6E05\u7406\u65E0\u6548\u8FDE\u63A5\u5931\u8D25: ${err}`);
|
|
38
|
+
});
|
|
39
|
+
}, 3e4);
|
|
34
40
|
}
|
|
35
41
|
log = log.extend("@lsby:net-core").extend("WebSocket\u7BA1\u7406\u5668");
|
|
36
42
|
\u6E05\u7406\u51FD\u6570\u8868 = {};
|
|
43
|
+
\u5B9A\u65F6\u5668ID = null;
|
|
37
44
|
\u589E\u52A0\u8FDE\u63A5(id, ws\u53E5\u67C4) {
|
|
38
45
|
this.\u8FDE\u63A5\u8868[id] = ws\u53E5\u67C4;
|
|
39
46
|
}
|
|
@@ -58,6 +65,18 @@ var WebSocket\u7BA1\u7406\u5668 = class {
|
|
|
58
65
|
delete this.\u8FDE\u63A5\u8868[id];
|
|
59
66
|
delete this.\u6E05\u7406\u51FD\u6570\u8868[id];
|
|
60
67
|
}
|
|
68
|
+
async \u6E05\u7406\u65E0\u6548\u8FDE\u63A5() {
|
|
69
|
+
let \u6E05\u7406\u6570\u91CF = 0;
|
|
70
|
+
for (let [id, ws] of Object.entries(this.\u8FDE\u63A5\u8868)) {
|
|
71
|
+
if (ws === null || ws.readyState === import_ws.WebSocket.CLOSED) {
|
|
72
|
+
this.\u5220\u9664\u8FDE\u63A5(id);
|
|
73
|
+
\u6E05\u7406\u6570\u91CF++;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
if (\u6E05\u7406\u6570\u91CF > 0) {
|
|
77
|
+
this.log.infoSync(`\u6E05\u7406\u4E86 ${\u6E05\u7406\u6570\u91CF} \u4E2A\u65E0\u6548 WebSocket \u8FDE\u63A5`);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
61
80
|
};
|
|
62
81
|
var Global = new import_ts_global.GlobalService([
|
|
63
82
|
new import_ts_global.GlobalItem("log", log),
|
|
@@ -39,13 +39,20 @@ var import_node_util = require("util");
|
|
|
39
39
|
// src/global/global.ts
|
|
40
40
|
var import_ts_global = require("@lsby/ts-global");
|
|
41
41
|
var import_ts_log = require("@lsby/ts-log");
|
|
42
|
+
var import_ws = require("ws");
|
|
42
43
|
var log = new import_ts_log.Log("@lsby:net-core");
|
|
43
44
|
var WebSocket\u7BA1\u7406\u5668 = class {
|
|
44
45
|
constructor(\u8FDE\u63A5\u8868) {
|
|
45
46
|
this.\u8FDE\u63A5\u8868 = \u8FDE\u63A5\u8868;
|
|
47
|
+
this.\u5B9A\u65F6\u5668ID = setInterval(() => {
|
|
48
|
+
this.\u6E05\u7406\u65E0\u6548\u8FDE\u63A5().catch((err) => {
|
|
49
|
+
this.log.errorSync(`\u6E05\u7406\u65E0\u6548\u8FDE\u63A5\u5931\u8D25: ${err}`);
|
|
50
|
+
});
|
|
51
|
+
}, 3e4);
|
|
46
52
|
}
|
|
47
53
|
log = log.extend("@lsby:net-core").extend("WebSocket\u7BA1\u7406\u5668");
|
|
48
54
|
\u6E05\u7406\u51FD\u6570\u8868 = {};
|
|
55
|
+
\u5B9A\u65F6\u5668ID = null;
|
|
49
56
|
\u589E\u52A0\u8FDE\u63A5(id, ws\u53E5\u67C4) {
|
|
50
57
|
this.\u8FDE\u63A5\u8868[id] = ws\u53E5\u67C4;
|
|
51
58
|
}
|
|
@@ -70,6 +77,18 @@ var WebSocket\u7BA1\u7406\u5668 = class {
|
|
|
70
77
|
delete this.\u8FDE\u63A5\u8868[id];
|
|
71
78
|
delete this.\u6E05\u7406\u51FD\u6570\u8868[id];
|
|
72
79
|
}
|
|
80
|
+
async \u6E05\u7406\u65E0\u6548\u8FDE\u63A5() {
|
|
81
|
+
let \u6E05\u7406\u6570\u91CF = 0;
|
|
82
|
+
for (let [id, ws] of Object.entries(this.\u8FDE\u63A5\u8868)) {
|
|
83
|
+
if (ws === null || ws.readyState === import_ws.WebSocket.CLOSED) {
|
|
84
|
+
this.\u5220\u9664\u8FDE\u63A5(id);
|
|
85
|
+
\u6E05\u7406\u6570\u91CF++;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
if (\u6E05\u7406\u6570\u91CF > 0) {
|
|
89
|
+
this.log.infoSync(`\u6E05\u7406\u4E86 ${\u6E05\u7406\u6570\u91CF} \u4E2A\u65E0\u6548 WebSocket \u8FDE\u63A5`);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
73
92
|
};
|
|
74
93
|
var Global = new import_ts_global.GlobalService([
|
|
75
94
|
new import_ts_global.GlobalItem("log", log),
|
|
@@ -23,19 +23,26 @@ __export(web_socket_exports, {
|
|
|
23
23
|
WebSocket\u63D2\u4EF6: () => WebSocket\u63D2\u4EF6
|
|
24
24
|
});
|
|
25
25
|
module.exports = __toCommonJS(web_socket_exports);
|
|
26
|
-
var
|
|
26
|
+
var import_ws2 = require("ws");
|
|
27
27
|
var import_zod = require("zod");
|
|
28
28
|
|
|
29
29
|
// src/global/global.ts
|
|
30
30
|
var import_ts_global = require("@lsby/ts-global");
|
|
31
31
|
var import_ts_log = require("@lsby/ts-log");
|
|
32
|
+
var import_ws = require("ws");
|
|
32
33
|
var log = new import_ts_log.Log("@lsby:net-core");
|
|
33
34
|
var WebSocket\u7BA1\u7406\u5668 = class {
|
|
34
35
|
constructor(\u8FDE\u63A5\u8868) {
|
|
35
36
|
this.\u8FDE\u63A5\u8868 = \u8FDE\u63A5\u8868;
|
|
37
|
+
this.\u5B9A\u65F6\u5668ID = setInterval(() => {
|
|
38
|
+
this.\u6E05\u7406\u65E0\u6548\u8FDE\u63A5().catch((err) => {
|
|
39
|
+
this.log.errorSync(`\u6E05\u7406\u65E0\u6548\u8FDE\u63A5\u5931\u8D25: ${err}`);
|
|
40
|
+
});
|
|
41
|
+
}, 3e4);
|
|
36
42
|
}
|
|
37
43
|
log = log.extend("@lsby:net-core").extend("WebSocket\u7BA1\u7406\u5668");
|
|
38
44
|
\u6E05\u7406\u51FD\u6570\u8868 = {};
|
|
45
|
+
\u5B9A\u65F6\u5668ID = null;
|
|
39
46
|
\u589E\u52A0\u8FDE\u63A5(id, ws\u53E5\u67C4) {
|
|
40
47
|
this.\u8FDE\u63A5\u8868[id] = ws\u53E5\u67C4;
|
|
41
48
|
}
|
|
@@ -60,6 +67,18 @@ var WebSocket\u7BA1\u7406\u5668 = class {
|
|
|
60
67
|
delete this.\u8FDE\u63A5\u8868[id];
|
|
61
68
|
delete this.\u6E05\u7406\u51FD\u6570\u8868[id];
|
|
62
69
|
}
|
|
70
|
+
async \u6E05\u7406\u65E0\u6548\u8FDE\u63A5() {
|
|
71
|
+
let \u6E05\u7406\u6570\u91CF = 0;
|
|
72
|
+
for (let [id, ws] of Object.entries(this.\u8FDE\u63A5\u8868)) {
|
|
73
|
+
if (ws === null || ws.readyState === import_ws.WebSocket.CLOSED) {
|
|
74
|
+
this.\u5220\u9664\u8FDE\u63A5(id);
|
|
75
|
+
\u6E05\u7406\u6570\u91CF++;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
if (\u6E05\u7406\u6570\u91CF > 0) {
|
|
79
|
+
this.log.infoSync(`\u6E05\u7406\u4E86 ${\u6E05\u7406\u6570\u91CF} \u4E2A\u65E0\u6548 WebSocket \u8FDE\u63A5`);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
63
82
|
};
|
|
64
83
|
var Global = new import_ts_global.GlobalService([
|
|
65
84
|
new import_ts_global.GlobalItem("log", log),
|
|
@@ -107,14 +126,13 @@ var WebSocket\u63D2\u4EF6 = class extends \u63D2\u4EF6 {
|
|
|
107
126
|
ws\u64CD\u4F5C: {
|
|
108
127
|
async \u53D1\u9001ws\u4FE1\u606F(\u4FE1\u606F) {
|
|
109
128
|
if (ws\u53E5\u67C4 === null) {
|
|
110
|
-
await log2.debug("\u5C1D\u8BD5\u83B7\u53D6 WebSocket \u53E5\u67C4");
|
|
111
129
|
ws\u53E5\u67C4 = await WebSocket\u7BA1\u7406\u56682.\u83B7\u5F97\u53E5\u67C4(wsId);
|
|
112
130
|
}
|
|
113
131
|
if (ws\u53E5\u67C4 === null) {
|
|
114
132
|
await log2.error("\u672A\u80FD\u83B7\u53D6\u5230\u6709\u6548\u7684 WebSocket \u53E5\u67C4");
|
|
115
133
|
return;
|
|
116
134
|
}
|
|
117
|
-
if (ws\u53E5\u67C4.readyState !==
|
|
135
|
+
if (ws\u53E5\u67C4.readyState !== import_ws2.WebSocket.OPEN) {
|
|
118
136
|
await log2.warn("WebSocket \u672A\u6253\u5F00\uFF0C\u65E0\u6CD5\u53D1\u9001\u6D88\u606F", { wsId });
|
|
119
137
|
return;
|
|
120
138
|
}
|
|
@@ -37,18 +37,25 @@ var import_express = __toESM(require("express"), 1);
|
|
|
37
37
|
var import_promises = require("fs/promises");
|
|
38
38
|
var import_node_os = require("os");
|
|
39
39
|
var import_short_uuid = __toESM(require("short-uuid"), 1);
|
|
40
|
-
var
|
|
40
|
+
var import_ws2 = require("ws");
|
|
41
41
|
|
|
42
42
|
// src/global/global.ts
|
|
43
43
|
var import_ts_global = require("@lsby/ts-global");
|
|
44
44
|
var import_ts_log = require("@lsby/ts-log");
|
|
45
|
+
var import_ws = require("ws");
|
|
45
46
|
var log = new import_ts_log.Log("@lsby:net-core");
|
|
46
47
|
var WebSocket\u7BA1\u7406\u5668 = class {
|
|
47
48
|
constructor(\u8FDE\u63A5\u8868) {
|
|
48
49
|
this.\u8FDE\u63A5\u8868 = \u8FDE\u63A5\u8868;
|
|
50
|
+
this.\u5B9A\u65F6\u5668ID = setInterval(() => {
|
|
51
|
+
this.\u6E05\u7406\u65E0\u6548\u8FDE\u63A5().catch((err) => {
|
|
52
|
+
this.log.errorSync(`\u6E05\u7406\u65E0\u6548\u8FDE\u63A5\u5931\u8D25: ${err}`);
|
|
53
|
+
});
|
|
54
|
+
}, 3e4);
|
|
49
55
|
}
|
|
50
56
|
log = log.extend("@lsby:net-core").extend("WebSocket\u7BA1\u7406\u5668");
|
|
51
57
|
\u6E05\u7406\u51FD\u6570\u8868 = {};
|
|
58
|
+
\u5B9A\u65F6\u5668ID = null;
|
|
52
59
|
\u589E\u52A0\u8FDE\u63A5(id, ws\u53E5\u67C4) {
|
|
53
60
|
this.\u8FDE\u63A5\u8868[id] = ws\u53E5\u67C4;
|
|
54
61
|
}
|
|
@@ -73,6 +80,18 @@ var WebSocket\u7BA1\u7406\u5668 = class {
|
|
|
73
80
|
delete this.\u8FDE\u63A5\u8868[id];
|
|
74
81
|
delete this.\u6E05\u7406\u51FD\u6570\u8868[id];
|
|
75
82
|
}
|
|
83
|
+
async \u6E05\u7406\u65E0\u6548\u8FDE\u63A5() {
|
|
84
|
+
let \u6E05\u7406\u6570\u91CF = 0;
|
|
85
|
+
for (let [id, ws] of Object.entries(this.\u8FDE\u63A5\u8868)) {
|
|
86
|
+
if (ws === null || ws.readyState === import_ws.WebSocket.CLOSED) {
|
|
87
|
+
this.\u5220\u9664\u8FDE\u63A5(id);
|
|
88
|
+
\u6E05\u7406\u6570\u91CF++;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
if (\u6E05\u7406\u6570\u91CF > 0) {
|
|
92
|
+
this.log.infoSync(`\u6E05\u7406\u4E86 ${\u6E05\u7406\u6570\u91CF} \u4E2A\u65E0\u6548 WebSocket \u8FDE\u63A5`);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
76
95
|
};
|
|
77
96
|
var Global = new import_ts_global.GlobalService([
|
|
78
97
|
new import_ts_global.GlobalItem("log", log),
|
|
@@ -190,7 +209,7 @@ var \u670D\u52A1\u5668 = class {
|
|
|
190
209
|
await log2.info("\u63A5\u53E3\u5B8C\u6574\u6267\u884C\u8017\u65F6: %o ms", \u603B\u8017\u65F6);
|
|
191
210
|
}
|
|
192
211
|
async \u521D\u59CB\u5316WebSocket(server) {
|
|
193
|
-
let wss = new
|
|
212
|
+
let wss = new import_ws2.WebSocketServer({ server });
|
|
194
213
|
let logBase = await this.log;
|
|
195
214
|
wss.on("listening", async () => {
|
|
196
215
|
let log2 = logBase;
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
} from "./chunk-43GZE5YL.js";
|
|
4
4
|
import {
|
|
5
5
|
Global
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-VTVWF3IE.js";
|
|
7
7
|
|
|
8
8
|
// src/plugin/extend/web-socket.ts
|
|
9
9
|
import { WebSocket } from "ws";
|
|
@@ -34,7 +34,6 @@ var WebSocket\u63D2\u4EF6 = class extends \u63D2\u4EF6 {
|
|
|
34
34
|
ws\u64CD\u4F5C: {
|
|
35
35
|
async \u53D1\u9001ws\u4FE1\u606F(\u4FE1\u606F) {
|
|
36
36
|
if (ws\u53E5\u67C4 === null) {
|
|
37
|
-
await log.debug("\u5C1D\u8BD5\u83B7\u53D6 WebSocket \u53E5\u67C4");
|
|
38
37
|
ws\u53E5\u67C4 = await WebSocket\u7BA1\u7406\u5668.\u83B7\u5F97\u53E5\u67C4(wsId);
|
|
39
38
|
}
|
|
40
39
|
if (ws\u53E5\u67C4 === null) {
|
|
@@ -1,13 +1,20 @@
|
|
|
1
1
|
// src/global/global.ts
|
|
2
2
|
import { GlobalItem, GlobalService } from "@lsby/ts-global";
|
|
3
3
|
import { Log } from "@lsby/ts-log";
|
|
4
|
+
import { WebSocket } from "ws";
|
|
4
5
|
var log = new Log("@lsby:net-core");
|
|
5
6
|
var WebSocket\u7BA1\u7406\u5668 = class {
|
|
6
7
|
constructor(\u8FDE\u63A5\u8868) {
|
|
7
8
|
this.\u8FDE\u63A5\u8868 = \u8FDE\u63A5\u8868;
|
|
9
|
+
this.\u5B9A\u65F6\u5668ID = setInterval(() => {
|
|
10
|
+
this.\u6E05\u7406\u65E0\u6548\u8FDE\u63A5().catch((err) => {
|
|
11
|
+
this.log.errorSync(`\u6E05\u7406\u65E0\u6548\u8FDE\u63A5\u5931\u8D25: ${err}`);
|
|
12
|
+
});
|
|
13
|
+
}, 3e4);
|
|
8
14
|
}
|
|
9
15
|
log = log.extend("@lsby:net-core").extend("WebSocket\u7BA1\u7406\u5668");
|
|
10
16
|
\u6E05\u7406\u51FD\u6570\u8868 = {};
|
|
17
|
+
\u5B9A\u65F6\u5668ID = null;
|
|
11
18
|
\u589E\u52A0\u8FDE\u63A5(id, ws\u53E5\u67C4) {
|
|
12
19
|
this.\u8FDE\u63A5\u8868[id] = ws\u53E5\u67C4;
|
|
13
20
|
}
|
|
@@ -32,6 +39,18 @@ var WebSocket\u7BA1\u7406\u5668 = class {
|
|
|
32
39
|
delete this.\u8FDE\u63A5\u8868[id];
|
|
33
40
|
delete this.\u6E05\u7406\u51FD\u6570\u8868[id];
|
|
34
41
|
}
|
|
42
|
+
async \u6E05\u7406\u65E0\u6548\u8FDE\u63A5() {
|
|
43
|
+
let \u6E05\u7406\u6570\u91CF = 0;
|
|
44
|
+
for (let [id, ws] of Object.entries(this.\u8FDE\u63A5\u8868)) {
|
|
45
|
+
if (ws === null || ws.readyState === WebSocket.CLOSED) {
|
|
46
|
+
this.\u5220\u9664\u8FDE\u63A5(id);
|
|
47
|
+
\u6E05\u7406\u6570\u91CF++;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
if (\u6E05\u7406\u6570\u91CF > 0) {
|
|
51
|
+
this.log.infoSync(`\u6E05\u7406\u4E86 ${\u6E05\u7406\u6570\u91CF} \u4E2A\u65E0\u6548 WebSocket \u8FDE\u63A5`);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
35
54
|
};
|
|
36
55
|
var Global = new GlobalService([
|
|
37
56
|
new GlobalItem("log", log),
|
|
@@ -7,12 +7,14 @@ declare class WebSocket管理器 {
|
|
|
7
7
|
private 连接表;
|
|
8
8
|
private log;
|
|
9
9
|
private 清理函数表;
|
|
10
|
+
private 定时器ID;
|
|
10
11
|
constructor(连接表: Record<id, WebSocket | null>);
|
|
11
12
|
增加连接(id: id, ws句柄: WebSocket): void;
|
|
12
13
|
查询连接存在(id: string): boolean;
|
|
13
14
|
设置清理函数(id: string, 清理函数: () => Promise<void>): Promise<void>;
|
|
14
15
|
获得句柄(id: id): Promise<WebSocket | null>;
|
|
15
16
|
删除连接(id: string): void;
|
|
17
|
+
private 清理无效连接;
|
|
16
18
|
}
|
|
17
19
|
declare let Global: GlobalService<[GlobalItem<"log", Log>, GlobalItem<"WebSocket管理器", WebSocket管理器>]>;
|
|
18
20
|
|
package/dist/esm/index.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
WebSocket插件
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-CGLDW3PN.js";
|
|
4
4
|
import {
|
|
5
5
|
中文路径支持插件
|
|
6
6
|
} from "./chunk-4BFNDHRC.js";
|
|
7
7
|
import {
|
|
8
8
|
自定义数据插件
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-VNRSKOGV.js";
|
|
10
10
|
import {
|
|
11
11
|
JSON解析插件
|
|
12
12
|
} from "./chunk-GMYXAJS3.js";
|
|
@@ -21,7 +21,7 @@ import {
|
|
|
21
21
|
} from "./chunk-RRUUWHTF.js";
|
|
22
22
|
import {
|
|
23
23
|
表单解析插件
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-SWPAN4RD.js";
|
|
25
25
|
import {
|
|
26
26
|
常用延时直接形式接口封装
|
|
27
27
|
} from "./chunk-JXTWTY2S.js";
|
|
@@ -33,7 +33,7 @@ import {
|
|
|
33
33
|
} from "./chunk-43GZE5YL.js";
|
|
34
34
|
import {
|
|
35
35
|
服务器
|
|
36
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-GEQKQOFV.js";
|
|
37
37
|
import {
|
|
38
38
|
EXPORT_TYPE
|
|
39
39
|
} from "./chunk-ZF7EC2OM.js";
|
|
@@ -49,12 +49,12 @@ import {
|
|
|
49
49
|
接口结果返回器,
|
|
50
50
|
自定义返回器
|
|
51
51
|
} from "./chunk-XBAKTT6S.js";
|
|
52
|
+
import "./chunk-VTVWF3IE.js";
|
|
52
53
|
import {
|
|
53
54
|
构造元组,
|
|
54
55
|
构造对象
|
|
55
56
|
} from "./chunk-YMH6HJJF.js";
|
|
56
57
|
import "./chunk-ZIVQ3WZA.js";
|
|
57
|
-
import "./chunk-BFL3HOQE.js";
|
|
58
58
|
import {
|
|
59
59
|
接口
|
|
60
60
|
} from "./chunk-MDUWXEQ7.js";
|