@lsby/net-core 0.6.8-beta.3 → 0.7.1

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 (80) hide show
  1. package/dist/cjs/global/global.cjs +26 -148
  2. package/dist/cjs/global/web-socket-management.cjs +26 -148
  3. package/dist/cjs/global/web-socket-management.d.cts +8 -10
  4. package/dist/cjs/help/help.cjs +2 -27
  5. package/dist/cjs/help/help.d.cts +1 -16
  6. package/dist/cjs/help/interior.cjs +52 -0
  7. package/dist/cjs/help/interior.d.cts +17 -0
  8. package/dist/cjs/index.cjs +97 -197
  9. package/dist/cjs/index.d.cts +3 -2
  10. package/dist/cjs/interface/interface-base.d.cts +2 -2
  11. package/dist/cjs/interface/interface-logic.cjs +1 -1
  12. package/dist/cjs/interface/interface-logic.d.cts +2 -2
  13. package/dist/cjs/interface/interface-result.d.cts +2 -2
  14. package/dist/{esm/interface-base-52hTGKAQ.d.ts → cjs/interface-base-CBN3QoUN.d.cts} +1 -1
  15. package/dist/cjs/plugin/extend/chinese-path.d.cts +2 -2
  16. package/dist/cjs/plugin/extend/custom-data.cjs +26 -148
  17. package/dist/cjs/plugin/extend/custom-data.d.cts +2 -2
  18. package/dist/cjs/plugin/extend/json.cjs +1 -1
  19. package/dist/cjs/plugin/extend/json.d.cts +2 -2
  20. package/dist/cjs/plugin/extend/log-headers.d.cts +2 -2
  21. package/dist/cjs/plugin/extend/query.cjs +1 -1
  22. package/dist/cjs/plugin/extend/query.d.cts +2 -2
  23. package/dist/cjs/plugin/extend/send-file-plugin.d.cts +2 -2
  24. package/dist/cjs/plugin/extend/urlencoded.cjs +26 -148
  25. package/dist/cjs/plugin/extend/urlencoded.d.cts +2 -2
  26. package/dist/cjs/plugin/extend/web-socket.cjs +46 -150
  27. package/dist/cjs/plugin/extend/web-socket.d.cts +2 -2
  28. package/dist/cjs/plugin/plug.d.cts +2 -2
  29. package/dist/cjs/server/server.cjs +49 -167
  30. package/dist/cjs/server/server.d.cts +2 -2
  31. package/dist/cjs/wrapper/common-wrapper.d.cts +2 -2
  32. package/dist/cjs/wrapper/deferred-result-wrapper.d.cts +2 -2
  33. package/dist/esm/{chunk-FDEUJJA6.js → chunk-2I2MJFB2.js} +1 -1
  34. package/dist/esm/{chunk-4AXMR5NB.js → chunk-2JQ7AEO4.js} +1 -1
  35. package/dist/esm/chunk-AB3GCWSG.js +55 -0
  36. package/dist/esm/{chunk-JB4HVEXB.js → chunk-G6IT6LW7.js} +1 -1
  37. package/dist/esm/{chunk-RYGSLVLS.js → chunk-NMG5C5AS.js} +1 -9
  38. package/dist/esm/{chunk-PMVV6QW4.js → chunk-QXHAH6TU.js} +24 -20
  39. package/dist/esm/{chunk-47MYYUQZ.js → chunk-RHDBIJPA.js} +1 -1
  40. package/dist/esm/{chunk-XPC3O5HH.js → chunk-UMOKW2FY.js} +21 -3
  41. package/dist/esm/chunk-YMH6HJJF.js +12 -0
  42. package/dist/esm/{chunk-BD3TBYRH.js → chunk-YMW7PURV.js} +1 -1
  43. package/dist/esm/global/global.js +1 -1
  44. package/dist/esm/global/web-socket-management.d.ts +8 -10
  45. package/dist/esm/global/web-socket-management.js +1 -1
  46. package/dist/esm/help/help.d.ts +1 -16
  47. package/dist/esm/help/help.js +3 -7
  48. package/dist/esm/help/interior.d.ts +17 -0
  49. package/dist/esm/help/interior.js +8 -0
  50. package/dist/esm/index.d.ts +3 -2
  51. package/dist/esm/index.js +22 -25
  52. package/dist/esm/interface/interface-base.d.ts +2 -2
  53. package/dist/esm/interface/interface-logic.d.ts +2 -2
  54. package/dist/esm/interface/interface-logic.js +1 -1
  55. package/dist/esm/interface/interface-result.d.ts +2 -2
  56. package/dist/{cjs/interface-base-CNHVr8eR.d.cts → esm/interface-base-D8Jo2TEo.d.ts} +1 -1
  57. package/dist/esm/plugin/extend/chinese-path.d.ts +2 -2
  58. package/dist/esm/plugin/extend/custom-data.d.ts +2 -2
  59. package/dist/esm/plugin/extend/custom-data.js +2 -2
  60. package/dist/esm/plugin/extend/json.d.ts +2 -2
  61. package/dist/esm/plugin/extend/json.js +2 -2
  62. package/dist/esm/plugin/extend/log-headers.d.ts +2 -2
  63. package/dist/esm/plugin/extend/query.d.ts +2 -2
  64. package/dist/esm/plugin/extend/query.js +2 -2
  65. package/dist/esm/plugin/extend/send-file-plugin.d.ts +2 -2
  66. package/dist/esm/plugin/extend/urlencoded.d.ts +2 -2
  67. package/dist/esm/plugin/extend/urlencoded.js +2 -2
  68. package/dist/esm/plugin/extend/web-socket.d.ts +2 -2
  69. package/dist/esm/plugin/extend/web-socket.js +2 -2
  70. package/dist/esm/plugin/plug.d.ts +2 -2
  71. package/dist/esm/server/server.d.ts +2 -2
  72. package/dist/esm/server/server.js +3 -3
  73. package/dist/esm/wrapper/common-wrapper.d.ts +2 -2
  74. package/dist/esm/wrapper/common-wrapper.js +2 -2
  75. package/dist/esm/wrapper/deferred-result-wrapper.d.ts +2 -2
  76. package/dist/esm/wrapper/deferred-result-wrapper.js +2 -2
  77. package/package.json +1 -1
  78. package/dist/esm/chunk-LDWZKZLU.js +0 -177
  79. package/dist/esm/{chunk-JLHGWUH6.js → chunk-FHU5AZWT.js} +3 -3
  80. package/dist/esm/{chunk-FEURUNOT.js → chunk-WYJFP5V5.js} +3 -3
@@ -28,162 +28,40 @@ var import_ts_log = require("@lsby/ts-log");
28
28
 
29
29
  // src/global/web-socket-management.ts
30
30
  var WebSocket\u7BA1\u7406\u5668 = class {
31
- log = Global.getItem("log").then((a) => a.extend("@lsby:net-core").extend("WebSocket\u7BA1\u7406\u5668"));
32
- \u8FDE\u63A5\u8868 = {};
33
- async \u5173\u95ED\u5E76\u5220\u9664\u8FDE\u63A5(id, code, \u8BF4\u660E) {
34
- let log = (await this.log).extend(id).extend("\u5173\u95ED\u5E76\u5220\u9664\u8FDE\u63A5");
35
- try {
36
- await this.\u8FDE\u63A5\u8868[id]?.\u6E05\u7406\u51FD\u6570?.();
37
- } catch (err) {
38
- await log.error(`\u6267\u884C\u6E05\u7406\u51FD\u6570\u5931\u8D25: %o.`, String(err));
39
- }
40
- this.\u8FDE\u63A5\u8868[id]?.ws?.close(code, \u8BF4\u660E);
41
- delete this.\u8FDE\u63A5\u8868[id];
31
+ constructor(\u8FDE\u63A5\u8868) {
32
+ this.\u8FDE\u63A5\u8868 = \u8FDE\u63A5\u8868;
42
33
  }
43
- async \u9500\u6BC1\u5224\u5B9A(id) {
44
- let log = (await this.log).extend(id).extend("\u9500\u6BC1\u5224\u5B9A");
45
- let \u8FDE\u63A5 = this.\u8FDE\u63A5\u8868[id];
46
- if (\u8FDE\u63A5 === void 0) {
47
- await log.error(`\u65E0\u6CD5\u627E\u5230\u8FDE\u63A5`);
48
- return;
49
- }
50
- if (\u8FDE\u63A5.\u5DF2\u9519\u8BEF === true) {
51
- await log.error(`\u8FDE\u63A5\u5DF2\u88AB\u6807\u8BB0\u4E3A\u9519\u8BEF, \u65AD\u5F00\u8FDE\u63A5.`);
52
- clearTimeout(\u8FDE\u63A5.\u8D85\u65F6\u5B9A\u65F6\u5668);
53
- await this.\u5173\u95ED\u5E76\u5220\u9664\u8FDE\u63A5(id, 1011, "\u53D1\u751F\u9519\u8BEF");
54
- return;
55
- }
56
- if (\u8FDE\u63A5.\u5DF2\u5B8C\u6210 === true && \u8FDE\u63A5.\u7F13\u5B58.length === 0) {
57
- await log.debug(`\u8FDE\u63A5\u5DF2\u5B8C\u6210, \u6B63\u5E38\u5173\u95ED.`);
58
- await this.\u5173\u95ED\u5E76\u5220\u9664\u8FDE\u63A5(id, 1e3, "\u6B63\u5E38\u5173\u95ED");
59
- return;
60
- }
61
- if (\u8FDE\u63A5.\u5DF2\u65AD\u5F00 === false) {
62
- clearTimeout(\u8FDE\u63A5.\u8D85\u65F6\u5B9A\u65F6\u5668);
63
- }
64
- if (\u8FDE\u63A5.\u5DF2\u65AD\u5F00 === true) {
65
- await log.debug("\u8FDE\u63A5\u5DF2\u65AD\u5F00, \u7B49\u5F85\u5BA2\u6237\u7AEF\u91CD\u8FDE.");
66
- let \u8D85\u65F6\u65F6\u95F4 = 3e4;
67
- clearTimeout(\u8FDE\u63A5.\u8D85\u65F6\u5B9A\u65F6\u5668);
68
- \u8FDE\u63A5.\u8D85\u65F6\u5B9A\u65F6\u5668 = setTimeout(async () => {
69
- if (this.\u8FDE\u63A5\u8868[id]?.\u5DF2\u65AD\u5F00 === true) {
70
- await log.error("\u5BA2\u6237\u7AEF\u8D85\u65F6\u672A\u91CD\u8FDE\uFF0C\u6E05\u7406\u8FDE\u63A5.");
71
- await this.\u5173\u95ED\u5E76\u5220\u9664\u8FDE\u63A5(id, 1011, "\u5BA2\u6237\u7AEF\u8D85\u65F6\u672A\u91CD\u8FDE\uFF0C\u6E05\u7406\u8FDE\u63A5");
72
- }
73
- }, \u8D85\u65F6\u65F6\u95F4);
74
- }
34
+ log = Global.getItem("log").then((a) => a.extend("@lsby:net-core").extend("WebSocket\u7BA1\u7406\u5668"));
35
+ \u6E05\u7406\u51FD\u6570\u8868 = {};
36
+ async \u589E\u52A0\u8FDE\u63A5(id, ws\u53E5\u67C4) {
37
+ this.\u8FDE\u63A5\u8868[id] = ws\u53E5\u67C4;
75
38
  }
76
- async \u589E\u52A0\u6216\u66FF\u6362\u8FDE\u63A5(id, ws) {
77
- let log = (await this.log).extend(id).extend("\u589E\u52A0\u6216\u66FF\u6362\u8FDE\u63A5");
78
- if (this.\u8FDE\u63A5\u8868[id] === void 0) {
79
- this.\u8FDE\u63A5\u8868[id] = {
80
- ws,
81
- \u7F13\u5B58: [],
82
- \u5DF2\u5B8C\u6210: false,
83
- \u5DF2\u65AD\u5F00: false,
84
- \u5DF2\u9519\u8BEF: false,
85
- \u6570\u636E\u53D1\u9001\u4E2D: false,
86
- \u7F13\u5B58\u53D1\u9001\u4E2D: false
87
- };
88
- return;
89
- }
90
- let \u65E7\u53E5\u67C4 = this.\u8FDE\u63A5\u8868[id].ws;
91
- await log.info("\u65E7\u8FDE\u63A5\u5B58\u5728, \u5C06\u66FF\u6362\u8868\u4E2D\u6570\u636E, \u5E76\u5173\u95ED\u65E7ws\u53E5\u67C4.");
92
- this.\u8FDE\u63A5\u8868[id].ws = ws;
93
- this.\u8FDE\u63A5\u8868[id].\u5DF2\u5B8C\u6210 = false;
94
- this.\u8FDE\u63A5\u8868[id].\u5DF2\u65AD\u5F00 = false;
95
- this.\u8FDE\u63A5\u8868[id].\u5DF2\u9519\u8BEF = false;
96
- this.\u8FDE\u63A5\u8868[id].\u6570\u636E\u53D1\u9001\u4E2D = false;
97
- this.\u8FDE\u63A5\u8868[id].\u7F13\u5B58\u53D1\u9001\u4E2D = false;
98
- \u65E7\u53E5\u67C4?.close(1011, "\u65B0\u8FDE\u63A5\u66FF\u6362\u65E7\u8FDE\u63A5");
99
- await log.info("\u53D1\u9001\u65E7\u8FDE\u63A5\u7F13\u5B58");
100
- this.\u8FDE\u63A5\u8868[id].\u7F13\u5B58\u53D1\u9001\u4E2D = true;
101
- while (this.\u8FDE\u63A5\u8868[id].\u7F13\u5B58.length !== 0) {
102
- await this.\u53D1\u9001\u4FE1\u606F_\u5185\u90E8(id, this.\u8FDE\u63A5\u8868[id].\u7F13\u5B58.shift());
103
- }
104
- this.\u8FDE\u63A5\u8868[id].\u7F13\u5B58\u53D1\u9001\u4E2D = false;
105
- await log.info("\u53D1\u9001\u65E7\u8FDE\u63A5\u7F13\u5B58\u5B8C\u6210");
39
+ async \u67E5\u8BE2\u8FDE\u63A5\u5B58\u5728(id) {
40
+ return this.\u8FDE\u63A5\u8868.hasOwnProperty(id) ? true : false;
106
41
  }
107
42
  async \u8BBE\u7F6E\u6E05\u7406\u51FD\u6570(id, \u6E05\u7406\u51FD\u6570) {
108
- let log = (await this.log).extend(id).extend("\u8BBE\u7F6E\u6E05\u7406\u51FD\u6570");
109
- if (this.\u8FDE\u63A5\u8868[id] === void 0) {
110
- await log.error(`\u65E0\u6CD5\u627E\u5230\u8FDE\u63A5`);
43
+ if (this.\u8FDE\u63A5\u8868.hasOwnProperty(id) === false)
111
44
  return;
112
- }
113
- this.\u8FDE\u63A5\u8868[id].\u6E05\u7406\u51FD\u6570 = \u6E05\u7406\u51FD\u6570;
45
+ this.\u6E05\u7406\u51FD\u6570\u8868[id] = \u6E05\u7406\u51FD\u6570;
114
46
  }
115
- async \u53D1\u9001\u4FE1\u606F_\u5185\u90E8(id, data) {
116
- let log = (await this.log).extend(id).extend("\u53D1\u9001\u4FE1\u606F(\u5185\u90E8)");
117
- while (this.\u8FDE\u63A5\u8868[id]?.\u6570\u636E\u53D1\u9001\u4E2D === true) {
118
- await log.info("\u6570\u636E\u53D1\u9001\u4E2D, \u5C06\u9000\u907F.");
119
- let \u9000\u907F\u65F6\u95F4 = 100;
120
- await new Promise((res, _rej) => setTimeout(() => res(), \u9000\u907F\u65F6\u95F4));
121
- }
122
- let \u8FDE\u63A5 = this.\u8FDE\u63A5\u8868[id];
123
- if (\u8FDE\u63A5 === void 0) {
124
- await log.error("\u65E0\u6CD5\u627E\u5230\u8FDE\u63A5");
125
- return;
126
- }
127
- await new Promise((res, rej) => {
128
- \u8FDE\u63A5.\u6570\u636E\u53D1\u9001\u4E2D = true;
129
- let ws\u53E5\u67C4 = \u8FDE\u63A5.ws;
130
- if (ws\u53E5\u67C4 === null) {
131
- log.error("\u65E0\u6CD5\u627E\u5230ws\u53E5\u67C4").catch(console.error);
132
- return;
133
- }
134
- ws\u53E5\u67C4.send(JSON.stringify(data), (err) => {
135
- if ((err ?? null) !== null) {
136
- log.error(err).catch(console.error);
137
- return rej(err);
138
- }
139
- log.debug("WebSocket \u4FE1\u606F\u53D1\u9001\u6210\u529F").catch(console.error);
140
- return res();
141
- });
142
- }).finally(() => {
143
- \u8FDE\u63A5.\u6570\u636E\u53D1\u9001\u4E2D = false;
144
- });
47
+ async \u83B7\u5F97\u53E5\u67C4(id) {
48
+ return this.\u8FDE\u63A5\u8868[id] ?? null;
145
49
  }
146
- async \u53D1\u9001\u4FE1\u606F(id, data) {
147
- let log = (await this.log).extend(id).extend("\u53D1\u9001\u4FE1\u606F");
148
- if (this.\u8FDE\u63A5\u8868[id]?.\u5DF2\u5B8C\u6210 === true) {
149
- await log.error("\u8FDE\u63A5\u5DF2\u5B8C\u6210, \u65E0\u6CD5\u53D1\u9001\u6570\u636E.");
150
- return;
151
- }
152
- if (this.\u8FDE\u63A5\u8868[id]?.\u5DF2\u65AD\u5F00 === true) {
153
- await log.error("\u8FDE\u63A5\u5DF2\u65AD\u5F00, \u5C06\u7F13\u5B58\u6570\u636E.");
154
- this.\u8FDE\u63A5\u8868[id].\u7F13\u5B58.push(data);
155
- return;
50
+ async \u5220\u9664\u8FDE\u63A5(id) {
51
+ let log = await this.log;
52
+ let \u6E05\u7406\u51FD\u6570 = this.\u6E05\u7406\u51FD\u6570\u8868[id];
53
+ try {
54
+ this.\u8FDE\u63A5\u8868[id]?.close(1e3, "\u670D\u52A1\u5668\u4E3B\u52A8\u5173\u95ED");
55
+ } catch (err) {
56
+ await log.error(`\u5173\u95ED WebSocket \u53E5\u67C4\u5931\u8D25, id: ${id}, \u9519\u8BEF: ${err}`);
156
57
  }
157
- while (this.\u8FDE\u63A5\u8868[id]?.\u7F13\u5B58\u53D1\u9001\u4E2D === true) {
158
- await log.info("\u7F13\u5B58\u53D1\u9001\u4E2D, \u5C06\u9000\u907F.");
159
- let \u9000\u907F\u65F6\u95F4 = 100;
160
- await new Promise((res, _rej) => setTimeout(() => res(), \u9000\u907F\u65F6\u95F4));
58
+ try {
59
+ await \u6E05\u7406\u51FD\u6570?.();
60
+ } catch (err) {
61
+ await log.error(`\u6E05\u7406\u8FDE\u63A5\u5931\u8D25, id: ${id}, \u9519\u8BEF: ${err}`);
161
62
  }
162
- await this.\u53D1\u9001\u4FE1\u606F_\u5185\u90E8(id, data);
163
- }
164
- async \u6807\u8BB0\u8FDE\u63A5\u5DF2\u5B8C\u6210(id) {
165
- if (this.\u8FDE\u63A5\u8868[id] === void 0)
166
- return;
167
- this.\u8FDE\u63A5\u8868[id].\u5DF2\u5B8C\u6210 = true;
168
- await this.\u9500\u6BC1\u5224\u5B9A(id);
169
- }
170
- async \u6807\u8BB0\u8FDE\u63A5\u5DF2\u65AD\u5F00(id) {
171
- if (this.\u8FDE\u63A5\u8868[id] === void 0)
172
- return;
173
- this.\u8FDE\u63A5\u8868[id].\u5DF2\u65AD\u5F00 = true;
174
- await this.\u9500\u6BC1\u5224\u5B9A(id);
175
- }
176
- async \u53D6\u6D88\u6807\u8BB0\u8FDE\u63A5\u5DF2\u65AD\u5F00(id) {
177
- if (this.\u8FDE\u63A5\u8868[id] === void 0)
178
- return;
179
- this.\u8FDE\u63A5\u8868[id].\u5DF2\u65AD\u5F00 = false;
180
- await this.\u9500\u6BC1\u5224\u5B9A(id);
181
- }
182
- async \u6807\u8BB0\u8FDE\u63A5\u5DF2\u9519\u8BEF(id) {
183
- if (this.\u8FDE\u63A5\u8868[id] === void 0)
184
- return;
185
- this.\u8FDE\u63A5\u8868[id].\u5DF2\u9519\u8BEF = true;
186
- await this.\u9500\u6BC1\u5224\u5B9A(id);
63
+ delete this.\u8FDE\u63A5\u8868[id];
64
+ delete this.\u6E05\u7406\u51FD\u6570\u8868[id];
187
65
  }
188
66
  };
189
67
 
@@ -193,7 +71,7 @@ var Global = new import_ts_global.GlobalService([
193
71
  return new import_ts_log.Log("@lsby:net-core");
194
72
  }),
195
73
  new import_ts_global.GlobalAsyncItem("WebSocket\u7BA1\u7406\u5668", async () => {
196
- return new WebSocket\u7BA1\u7406\u5668();
74
+ return new WebSocket\u7BA1\u7406\u5668({});
197
75
  })
198
76
  ]);
199
77
  // Annotate the CommonJS export names for ESM import in node:
@@ -32,168 +32,46 @@ var Global = new import_ts_global.GlobalService([
32
32
  return new import_ts_log.Log("@lsby:net-core");
33
33
  }),
34
34
  new import_ts_global.GlobalAsyncItem("WebSocket\u7BA1\u7406\u5668", async () => {
35
- return new WebSocket\u7BA1\u7406\u5668();
35
+ return new WebSocket\u7BA1\u7406\u5668({});
36
36
  })
37
37
  ]);
38
38
 
39
39
  // src/global/web-socket-management.ts
40
40
  var WebSocket\u7BA1\u7406\u5668 = class {
41
- log = Global.getItem("log").then((a) => a.extend("@lsby:net-core").extend("WebSocket\u7BA1\u7406\u5668"));
42
- \u8FDE\u63A5\u8868 = {};
43
- async \u5173\u95ED\u5E76\u5220\u9664\u8FDE\u63A5(id, code, \u8BF4\u660E) {
44
- let log = (await this.log).extend(id).extend("\u5173\u95ED\u5E76\u5220\u9664\u8FDE\u63A5");
45
- try {
46
- await this.\u8FDE\u63A5\u8868[id]?.\u6E05\u7406\u51FD\u6570?.();
47
- } catch (err) {
48
- await log.error(`\u6267\u884C\u6E05\u7406\u51FD\u6570\u5931\u8D25: %o.`, String(err));
49
- }
50
- this.\u8FDE\u63A5\u8868[id]?.ws?.close(code, \u8BF4\u660E);
51
- delete this.\u8FDE\u63A5\u8868[id];
41
+ constructor(\u8FDE\u63A5\u8868) {
42
+ this.\u8FDE\u63A5\u8868 = \u8FDE\u63A5\u8868;
52
43
  }
53
- async \u9500\u6BC1\u5224\u5B9A(id) {
54
- let log = (await this.log).extend(id).extend("\u9500\u6BC1\u5224\u5B9A");
55
- let \u8FDE\u63A5 = this.\u8FDE\u63A5\u8868[id];
56
- if (\u8FDE\u63A5 === void 0) {
57
- await log.error(`\u65E0\u6CD5\u627E\u5230\u8FDE\u63A5`);
58
- return;
59
- }
60
- if (\u8FDE\u63A5.\u5DF2\u9519\u8BEF === true) {
61
- await log.error(`\u8FDE\u63A5\u5DF2\u88AB\u6807\u8BB0\u4E3A\u9519\u8BEF, \u65AD\u5F00\u8FDE\u63A5.`);
62
- clearTimeout(\u8FDE\u63A5.\u8D85\u65F6\u5B9A\u65F6\u5668);
63
- await this.\u5173\u95ED\u5E76\u5220\u9664\u8FDE\u63A5(id, 1011, "\u53D1\u751F\u9519\u8BEF");
64
- return;
65
- }
66
- if (\u8FDE\u63A5.\u5DF2\u5B8C\u6210 === true && \u8FDE\u63A5.\u7F13\u5B58.length === 0) {
67
- await log.debug(`\u8FDE\u63A5\u5DF2\u5B8C\u6210, \u6B63\u5E38\u5173\u95ED.`);
68
- await this.\u5173\u95ED\u5E76\u5220\u9664\u8FDE\u63A5(id, 1e3, "\u6B63\u5E38\u5173\u95ED");
69
- return;
70
- }
71
- if (\u8FDE\u63A5.\u5DF2\u65AD\u5F00 === false) {
72
- clearTimeout(\u8FDE\u63A5.\u8D85\u65F6\u5B9A\u65F6\u5668);
73
- }
74
- if (\u8FDE\u63A5.\u5DF2\u65AD\u5F00 === true) {
75
- await log.debug("\u8FDE\u63A5\u5DF2\u65AD\u5F00, \u7B49\u5F85\u5BA2\u6237\u7AEF\u91CD\u8FDE.");
76
- let \u8D85\u65F6\u65F6\u95F4 = 3e4;
77
- clearTimeout(\u8FDE\u63A5.\u8D85\u65F6\u5B9A\u65F6\u5668);
78
- \u8FDE\u63A5.\u8D85\u65F6\u5B9A\u65F6\u5668 = setTimeout(async () => {
79
- if (this.\u8FDE\u63A5\u8868[id]?.\u5DF2\u65AD\u5F00 === true) {
80
- await log.error("\u5BA2\u6237\u7AEF\u8D85\u65F6\u672A\u91CD\u8FDE\uFF0C\u6E05\u7406\u8FDE\u63A5.");
81
- await this.\u5173\u95ED\u5E76\u5220\u9664\u8FDE\u63A5(id, 1011, "\u5BA2\u6237\u7AEF\u8D85\u65F6\u672A\u91CD\u8FDE\uFF0C\u6E05\u7406\u8FDE\u63A5");
82
- }
83
- }, \u8D85\u65F6\u65F6\u95F4);
84
- }
44
+ log = Global.getItem("log").then((a) => a.extend("@lsby:net-core").extend("WebSocket\u7BA1\u7406\u5668"));
45
+ \u6E05\u7406\u51FD\u6570\u8868 = {};
46
+ async \u589E\u52A0\u8FDE\u63A5(id, ws\u53E5\u67C4) {
47
+ this.\u8FDE\u63A5\u8868[id] = ws\u53E5\u67C4;
85
48
  }
86
- async \u589E\u52A0\u6216\u66FF\u6362\u8FDE\u63A5(id, ws) {
87
- let log = (await this.log).extend(id).extend("\u589E\u52A0\u6216\u66FF\u6362\u8FDE\u63A5");
88
- if (this.\u8FDE\u63A5\u8868[id] === void 0) {
89
- this.\u8FDE\u63A5\u8868[id] = {
90
- ws,
91
- \u7F13\u5B58: [],
92
- \u5DF2\u5B8C\u6210: false,
93
- \u5DF2\u65AD\u5F00: false,
94
- \u5DF2\u9519\u8BEF: false,
95
- \u6570\u636E\u53D1\u9001\u4E2D: false,
96
- \u7F13\u5B58\u53D1\u9001\u4E2D: false
97
- };
98
- return;
99
- }
100
- let \u65E7\u53E5\u67C4 = this.\u8FDE\u63A5\u8868[id].ws;
101
- await log.info("\u65E7\u8FDE\u63A5\u5B58\u5728, \u5C06\u66FF\u6362\u8868\u4E2D\u6570\u636E, \u5E76\u5173\u95ED\u65E7ws\u53E5\u67C4.");
102
- this.\u8FDE\u63A5\u8868[id].ws = ws;
103
- this.\u8FDE\u63A5\u8868[id].\u5DF2\u5B8C\u6210 = false;
104
- this.\u8FDE\u63A5\u8868[id].\u5DF2\u65AD\u5F00 = false;
105
- this.\u8FDE\u63A5\u8868[id].\u5DF2\u9519\u8BEF = false;
106
- this.\u8FDE\u63A5\u8868[id].\u6570\u636E\u53D1\u9001\u4E2D = false;
107
- this.\u8FDE\u63A5\u8868[id].\u7F13\u5B58\u53D1\u9001\u4E2D = false;
108
- \u65E7\u53E5\u67C4?.close(1011, "\u65B0\u8FDE\u63A5\u66FF\u6362\u65E7\u8FDE\u63A5");
109
- await log.info("\u53D1\u9001\u65E7\u8FDE\u63A5\u7F13\u5B58");
110
- this.\u8FDE\u63A5\u8868[id].\u7F13\u5B58\u53D1\u9001\u4E2D = true;
111
- while (this.\u8FDE\u63A5\u8868[id].\u7F13\u5B58.length !== 0) {
112
- await this.\u53D1\u9001\u4FE1\u606F_\u5185\u90E8(id, this.\u8FDE\u63A5\u8868[id].\u7F13\u5B58.shift());
113
- }
114
- this.\u8FDE\u63A5\u8868[id].\u7F13\u5B58\u53D1\u9001\u4E2D = false;
115
- await log.info("\u53D1\u9001\u65E7\u8FDE\u63A5\u7F13\u5B58\u5B8C\u6210");
49
+ async \u67E5\u8BE2\u8FDE\u63A5\u5B58\u5728(id) {
50
+ return this.\u8FDE\u63A5\u8868.hasOwnProperty(id) ? true : false;
116
51
  }
117
52
  async \u8BBE\u7F6E\u6E05\u7406\u51FD\u6570(id, \u6E05\u7406\u51FD\u6570) {
118
- let log = (await this.log).extend(id).extend("\u8BBE\u7F6E\u6E05\u7406\u51FD\u6570");
119
- if (this.\u8FDE\u63A5\u8868[id] === void 0) {
120
- await log.error(`\u65E0\u6CD5\u627E\u5230\u8FDE\u63A5`);
53
+ if (this.\u8FDE\u63A5\u8868.hasOwnProperty(id) === false)
121
54
  return;
122
- }
123
- this.\u8FDE\u63A5\u8868[id].\u6E05\u7406\u51FD\u6570 = \u6E05\u7406\u51FD\u6570;
55
+ this.\u6E05\u7406\u51FD\u6570\u8868[id] = \u6E05\u7406\u51FD\u6570;
124
56
  }
125
- async \u53D1\u9001\u4FE1\u606F_\u5185\u90E8(id, data) {
126
- let log = (await this.log).extend(id).extend("\u53D1\u9001\u4FE1\u606F(\u5185\u90E8)");
127
- while (this.\u8FDE\u63A5\u8868[id]?.\u6570\u636E\u53D1\u9001\u4E2D === true) {
128
- await log.info("\u6570\u636E\u53D1\u9001\u4E2D, \u5C06\u9000\u907F.");
129
- let \u9000\u907F\u65F6\u95F4 = 100;
130
- await new Promise((res, _rej) => setTimeout(() => res(), \u9000\u907F\u65F6\u95F4));
131
- }
132
- let \u8FDE\u63A5 = this.\u8FDE\u63A5\u8868[id];
133
- if (\u8FDE\u63A5 === void 0) {
134
- await log.error("\u65E0\u6CD5\u627E\u5230\u8FDE\u63A5");
135
- return;
136
- }
137
- await new Promise((res, rej) => {
138
- \u8FDE\u63A5.\u6570\u636E\u53D1\u9001\u4E2D = true;
139
- let ws\u53E5\u67C4 = \u8FDE\u63A5.ws;
140
- if (ws\u53E5\u67C4 === null) {
141
- log.error("\u65E0\u6CD5\u627E\u5230ws\u53E5\u67C4").catch(console.error);
142
- return;
143
- }
144
- ws\u53E5\u67C4.send(JSON.stringify(data), (err) => {
145
- if ((err ?? null) !== null) {
146
- log.error(err).catch(console.error);
147
- return rej(err);
148
- }
149
- log.debug("WebSocket \u4FE1\u606F\u53D1\u9001\u6210\u529F").catch(console.error);
150
- return res();
151
- });
152
- }).finally(() => {
153
- \u8FDE\u63A5.\u6570\u636E\u53D1\u9001\u4E2D = false;
154
- });
57
+ async \u83B7\u5F97\u53E5\u67C4(id) {
58
+ return this.\u8FDE\u63A5\u8868[id] ?? null;
155
59
  }
156
- async \u53D1\u9001\u4FE1\u606F(id, data) {
157
- let log = (await this.log).extend(id).extend("\u53D1\u9001\u4FE1\u606F");
158
- if (this.\u8FDE\u63A5\u8868[id]?.\u5DF2\u5B8C\u6210 === true) {
159
- await log.error("\u8FDE\u63A5\u5DF2\u5B8C\u6210, \u65E0\u6CD5\u53D1\u9001\u6570\u636E.");
160
- return;
161
- }
162
- if (this.\u8FDE\u63A5\u8868[id]?.\u5DF2\u65AD\u5F00 === true) {
163
- await log.error("\u8FDE\u63A5\u5DF2\u65AD\u5F00, \u5C06\u7F13\u5B58\u6570\u636E.");
164
- this.\u8FDE\u63A5\u8868[id].\u7F13\u5B58.push(data);
165
- return;
60
+ async \u5220\u9664\u8FDE\u63A5(id) {
61
+ let log = await this.log;
62
+ let \u6E05\u7406\u51FD\u6570 = this.\u6E05\u7406\u51FD\u6570\u8868[id];
63
+ try {
64
+ this.\u8FDE\u63A5\u8868[id]?.close(1e3, "\u670D\u52A1\u5668\u4E3B\u52A8\u5173\u95ED");
65
+ } catch (err) {
66
+ await log.error(`\u5173\u95ED WebSocket \u53E5\u67C4\u5931\u8D25, id: ${id}, \u9519\u8BEF: ${err}`);
166
67
  }
167
- while (this.\u8FDE\u63A5\u8868[id]?.\u7F13\u5B58\u53D1\u9001\u4E2D === true) {
168
- await log.info("\u7F13\u5B58\u53D1\u9001\u4E2D, \u5C06\u9000\u907F.");
169
- let \u9000\u907F\u65F6\u95F4 = 100;
170
- await new Promise((res, _rej) => setTimeout(() => res(), \u9000\u907F\u65F6\u95F4));
68
+ try {
69
+ await \u6E05\u7406\u51FD\u6570?.();
70
+ } catch (err) {
71
+ await log.error(`\u6E05\u7406\u8FDE\u63A5\u5931\u8D25, id: ${id}, \u9519\u8BEF: ${err}`);
171
72
  }
172
- await this.\u53D1\u9001\u4FE1\u606F_\u5185\u90E8(id, data);
173
- }
174
- async \u6807\u8BB0\u8FDE\u63A5\u5DF2\u5B8C\u6210(id) {
175
- if (this.\u8FDE\u63A5\u8868[id] === void 0)
176
- return;
177
- this.\u8FDE\u63A5\u8868[id].\u5DF2\u5B8C\u6210 = true;
178
- await this.\u9500\u6BC1\u5224\u5B9A(id);
179
- }
180
- async \u6807\u8BB0\u8FDE\u63A5\u5DF2\u65AD\u5F00(id) {
181
- if (this.\u8FDE\u63A5\u8868[id] === void 0)
182
- return;
183
- this.\u8FDE\u63A5\u8868[id].\u5DF2\u65AD\u5F00 = true;
184
- await this.\u9500\u6BC1\u5224\u5B9A(id);
185
- }
186
- async \u53D6\u6D88\u6807\u8BB0\u8FDE\u63A5\u5DF2\u65AD\u5F00(id) {
187
- if (this.\u8FDE\u63A5\u8868[id] === void 0)
188
- return;
189
- this.\u8FDE\u63A5\u8868[id].\u5DF2\u65AD\u5F00 = false;
190
- await this.\u9500\u6BC1\u5224\u5B9A(id);
191
- }
192
- async \u6807\u8BB0\u8FDE\u63A5\u5DF2\u9519\u8BEF(id) {
193
- if (this.\u8FDE\u63A5\u8868[id] === void 0)
194
- return;
195
- this.\u8FDE\u63A5\u8868[id].\u5DF2\u9519\u8BEF = true;
196
- await this.\u9500\u6BC1\u5224\u5B9A(id);
73
+ delete this.\u8FDE\u63A5\u8868[id];
74
+ delete this.\u6E05\u7406\u51FD\u6570\u8868[id];
197
75
  }
198
76
  };
199
77
  // Annotate the CommonJS export names for ESM import in node:
@@ -1,18 +1,16 @@
1
1
  import { WebSocket } from 'ws';
2
2
 
3
+ type id = string;
3
4
  declare class WebSocket管理器 {
4
- private log;
5
5
  private 连接表;
6
- private 关闭并删除连接;
7
- private 销毁判定;
8
- 增加或替换连接(id: string, ws: WebSocket): Promise<void>;
6
+ private log;
7
+ private 清理函数表;
8
+ constructor(连接表: Record<id, WebSocket | null>);
9
+ 增加连接(id: id, ws句柄: WebSocket): Promise<void>;
10
+ 查询连接存在(id: string): Promise<boolean>;
9
11
  设置清理函数(id: string, 清理函数: () => Promise<void>): Promise<void>;
10
- private 发送信息_内部;
11
- 发送信息(id: string, data: any): Promise<void>;
12
- 标记连接已完成(id: string): Promise<void>;
13
- 标记连接已断开(id: string): Promise<void>;
14
- 取消标记连接已断开(id: string): Promise<void>;
15
- 标记连接已错误(id: string): Promise<void>;
12
+ 获得句柄(id: id): Promise<WebSocket | null>;
13
+ 删除连接(id: string): Promise<void>;
16
14
  }
17
15
 
18
16
  export { WebSocket管理器 };
@@ -20,10 +20,8 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
20
20
  // src/help/help.ts
21
21
  var help_exports = {};
22
22
  __export(help_exports, {
23
- \u622A\u65AD\u5B57\u7B26\u4E32: () => \u622A\u65AD\u5B57\u7B26\u4E32,
24
23
  \u6784\u9020\u5143\u7EC4: () => \u6784\u9020\u5143\u7EC4,
25
- \u6784\u9020\u5BF9\u8C61: () => \u6784\u9020\u5BF9\u8C61,
26
- \u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32: () => \u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32
24
+ \u6784\u9020\u5BF9\u8C61: () => \u6784\u9020\u5BF9\u8C61
27
25
  });
28
26
  module.exports = __toCommonJS(help_exports);
29
27
  function \u6784\u9020\u5143\u7EC4(args) {
@@ -32,31 +30,8 @@ function \u6784\u9020\u5143\u7EC4(args) {
32
30
  function \u6784\u9020\u5BF9\u8C61(key, value) {
33
31
  return { [key]: value };
34
32
  }
35
- function \u622A\u65AD\u5B57\u7B26\u4E32(\u5185\u5BB9) {
36
- let \u6700\u5927\u65E5\u5FD7\u957F\u5EA6 = 1e3;
37
- if (\u5185\u5BB9.length > \u6700\u5927\u65E5\u5FD7\u957F\u5EA6)
38
- return \u5185\u5BB9.slice(0, \u6700\u5927\u65E5\u5FD7\u957F\u5EA6) + "...";
39
- return \u5185\u5BB9;
40
- }
41
- function \u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32(\u6570\u636E) {
42
- if (typeof \u6570\u636E === "string")
43
- return \u622A\u65AD\u5B57\u7B26\u4E32(\u6570\u636E);
44
- if (Array.isArray(\u6570\u636E))
45
- return \u6570\u636E.map((\u9879) => \u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32(\u9879));
46
- if (typeof \u6570\u636E === "object" && \u6570\u636E !== null) {
47
- let \u65B0\u6570\u636E = {};
48
- for (let key in \u6570\u636E) {
49
- if (\u6570\u636E.hasOwnProperty(key) === true)
50
- \u65B0\u6570\u636E[key] = \u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32(\u6570\u636E[key]);
51
- }
52
- return \u65B0\u6570\u636E;
53
- }
54
- return \u6570\u636E;
55
- }
56
33
  // Annotate the CommonJS export names for ESM import in node:
57
34
  0 && (module.exports = {
58
- \u622A\u65AD\u5B57\u7B26\u4E32,
59
35
  \u6784\u9020\u5143\u7EC4,
60
- \u6784\u9020\u5BF9\u8C61,
61
- \u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32
36
+ \u6784\u9020\u5BF9\u8C61
62
37
  });
@@ -1,19 +1,4 @@
1
1
  declare function 构造元组<T extends any[]>(args: [...T]): T;
2
2
  declare function 构造对象<K extends string, V>(key: K, value: V): Record<K, V>;
3
- type 去除只读<T> = T extends readonly [...infer U] ? U : never;
4
- type 类型相等<X, Y> = (<T>() => T extends X ? 1 : 2) extends <T>() => T extends Y ? 1 : 2 ? true : false;
5
- declare function 截断字符串(内容: string): string;
6
- declare function 递归截断字符串(数据: any): any;
7
- type UnionToIntersection<T> = (T extends any ? (x: T) => any : never) extends (x: infer U) => any ? U : never;
8
- type LastUnion<T> = UnionToIntersection<T extends any ? (x: T) => any : never> extends (x: infer L) => any ? L : never;
9
- type 联合转元组<T, Last = LastUnion<T>> = [T] extends [never] ? [] : [...联合转元组<Exclude<T, Last>>, Last];
10
- type 数组包含<T extends readonly any[], U> = T extends [infer 第一个, ...infer 剩余] ? 类型相等<第一个, U> extends true ? true : 数组包含<剩余, U> : false;
11
- type 对象去重<T> = {
12
- [K in keyof T]: T[K];
13
- };
14
- type 数组去重<T extends readonly any[], 结果 extends readonly any[] = []> = T extends [
15
- infer 第一个,
16
- ...infer 剩余
17
- ] ? 数组包含<结果, 第一个> extends true ? 数组去重<剩余, 结果> : 数组去重<剩余, [...结果, 第一个]> : 结果;
18
3
 
19
- export { type 去除只读, type 对象去重, 截断字符串, type 数组包含, type 数组去重, 构造元组, 构造对象, type 类型相等, type 联合转元组, 递归截断字符串 };
4
+ export { 构造元组, 构造对象 };
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/help/interior.ts
21
+ var interior_exports = {};
22
+ __export(interior_exports, {
23
+ \u622A\u65AD\u5B57\u7B26\u4E32: () => \u622A\u65AD\u5B57\u7B26\u4E32,
24
+ \u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32: () => \u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32
25
+ });
26
+ module.exports = __toCommonJS(interior_exports);
27
+ function \u622A\u65AD\u5B57\u7B26\u4E32(\u5185\u5BB9) {
28
+ let \u6700\u5927\u65E5\u5FD7\u957F\u5EA6 = 1e3;
29
+ if (\u5185\u5BB9.length > \u6700\u5927\u65E5\u5FD7\u957F\u5EA6)
30
+ return \u5185\u5BB9.slice(0, \u6700\u5927\u65E5\u5FD7\u957F\u5EA6) + "...";
31
+ return \u5185\u5BB9;
32
+ }
33
+ function \u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32(\u6570\u636E) {
34
+ if (typeof \u6570\u636E === "string")
35
+ return \u622A\u65AD\u5B57\u7B26\u4E32(\u6570\u636E);
36
+ if (Array.isArray(\u6570\u636E))
37
+ return \u6570\u636E.map((\u9879) => \u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32(\u9879));
38
+ if (typeof \u6570\u636E === "object" && \u6570\u636E !== null) {
39
+ let \u65B0\u6570\u636E = {};
40
+ for (let key in \u6570\u636E) {
41
+ if (\u6570\u636E.hasOwnProperty(key) === true)
42
+ \u65B0\u6570\u636E[key] = \u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32(\u6570\u636E[key]);
43
+ }
44
+ return \u65B0\u6570\u636E;
45
+ }
46
+ return \u6570\u636E;
47
+ }
48
+ // Annotate the CommonJS export names for ESM import in node:
49
+ 0 && (module.exports = {
50
+ \u622A\u65AD\u5B57\u7B26\u4E32,
51
+ \u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32
52
+ });
@@ -0,0 +1,17 @@
1
+ type 去除只读<T> = T extends readonly [...infer U] ? U : never;
2
+ type 类型相等<X, Y> = (<T>() => T extends X ? 1 : 2) extends <T>() => T extends Y ? 1 : 2 ? true : false;
3
+ declare function 截断字符串(内容: string): string;
4
+ declare function 递归截断字符串(数据: any): any;
5
+ type UnionToIntersection<T> = (T extends any ? (x: T) => any : never) extends (x: infer U) => any ? U : never;
6
+ type LastUnion<T> = UnionToIntersection<T extends any ? (x: T) => any : never> extends (x: infer L) => any ? L : never;
7
+ type 联合转元组<T, Last = LastUnion<T>> = [T] extends [never] ? [] : [...联合转元组<Exclude<T, Last>>, Last];
8
+ type 数组包含<T extends readonly any[], U> = T extends [infer 第一个, ...infer 剩余] ? 类型相等<第一个, U> extends true ? true : 数组包含<剩余, U> : false;
9
+ type 对象去重<T> = {
10
+ [K in keyof T]: T[K];
11
+ };
12
+ type 数组去重<T extends readonly any[], 结果 extends readonly any[] = []> = T extends [
13
+ infer 第一个,
14
+ ...infer 剩余
15
+ ] ? 数组包含<结果, 第一个> extends true ? 数组去重<剩余, 结果> : 数组去重<剩余, [...结果, 第一个]> : 结果;
16
+
17
+ export { type 去除只读, type 对象去重, 截断字符串, type 数组包含, type 数组去重, type 类型相等, type 联合转元组, 递归截断字符串 };