vona-module-a-socket 5.0.0 → 5.1.2
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/LICENSE +21 -0
- package/cli/socketConnection/boilerplate/{{sceneName}}.{{beanName}}.ts_ +20 -0
- package/cli/socketNamespace/boilerplate/{{sceneName}}.{{beanName}}.ts_ +17 -0
- package/cli/socketPacket/boilerplate/{{sceneName}}.{{beanName}}.ts_ +15 -0
- package/dist/.metadata/index.d.ts +260 -0
- package/dist/.metadata/index.d.ts.map +1 -0
- package/dist/.metadata/this.d.ts +3 -0
- package/dist/.metadata/this.d.ts.map +1 -0
- package/dist/bean/bean.socket.d.ts +16 -0
- package/dist/bean/bean.socket.d.ts.map +1 -0
- package/dist/bean/broadcast.broadcast.d.ts +14 -0
- package/dist/bean/broadcast.broadcast.d.ts.map +1 -0
- package/dist/bean/broadcast.send.d.ts +13 -0
- package/dist/bean/broadcast.send.d.ts.map +1 -0
- package/dist/bean/hmr.socketConnection.d.ts +7 -0
- package/dist/bean/hmr.socketConnection.d.ts.map +1 -0
- package/dist/bean/hmr.socketPacket.d.ts +7 -0
- package/dist/bean/hmr.socketPacket.d.ts.map +1 -0
- package/dist/bean/socketConnection.alive.d.ts +14 -0
- package/dist/bean/socketConnection.alive.d.ts.map +1 -0
- package/dist/bean/socketConnection.app.d.ts +11 -0
- package/dist/bean/socketConnection.app.d.ts.map +1 -0
- package/dist/bean/socketConnection.cors.d.ts +11 -0
- package/dist/bean/socketConnection.cors.d.ts.map +1 -0
- package/dist/bean/socketConnection.event.d.ts +11 -0
- package/dist/bean/socketConnection.event.d.ts.map +1 -0
- package/dist/bean/socketConnection.instance.d.ts +11 -0
- package/dist/bean/socketConnection.instance.d.ts.map +1 -0
- package/dist/bean/socketConnection.passport.d.ts +12 -0
- package/dist/bean/socketConnection.passport.d.ts.map +1 -0
- package/dist/bean/socketConnection.ready.d.ts +11 -0
- package/dist/bean/socketConnection.ready.d.ts.map +1 -0
- package/dist/bean/socketPacket.event.d.ts +10 -0
- package/dist/bean/socketPacket.event.d.ts.map +1 -0
- package/dist/bean/socketPacket.performAction.d.ts +11 -0
- package/dist/bean/socketPacket.performAction.d.ts.map +1 -0
- package/dist/config/config.d.ts +15 -0
- package/dist/config/config.d.ts.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +632 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/beanSocketNamespaceBase.d.ts +7 -0
- package/dist/lib/beanSocketNamespaceBase.d.ts.map +1 -0
- package/dist/lib/const.d.ts +8 -0
- package/dist/lib/const.d.ts.map +1 -0
- package/dist/lib/index.d.ts +6 -0
- package/dist/lib/index.d.ts.map +1 -0
- package/dist/lib/socketConnection.d.ts +3 -0
- package/dist/lib/socketConnection.d.ts.map +1 -0
- package/dist/lib/socketNamespace.d.ts +4 -0
- package/dist/lib/socketNamespace.d.ts.map +1 -0
- package/dist/lib/socketPacket.d.ts +3 -0
- package/dist/lib/socketPacket.d.ts.map +1 -0
- package/dist/monkey.d.ts +7 -0
- package/dist/monkey.d.ts.map +1 -0
- package/dist/service/socket.d.ts +13 -0
- package/dist/service/socket.d.ts.map +1 -0
- package/dist/service/socketEvent.d.ts +10 -0
- package/dist/service/socketEvent.d.ts.map +1 -0
- package/dist/types/index.d.ts +6 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/socket.d.ts +18 -0
- package/dist/types/socket.d.ts.map +1 -0
- package/dist/types/socketConnection.d.ts +34 -0
- package/dist/types/socketConnection.d.ts.map +1 -0
- package/dist/types/socketEvent.d.ts +46 -0
- package/dist/types/socketEvent.d.ts.map +1 -0
- package/dist/types/socketNamespace.d.ts +23 -0
- package/dist/types/socketNamespace.d.ts.map +1 -0
- package/dist/types/socketPacket.d.ts +25 -0
- package/dist/types/socketPacket.d.ts.map +1 -0
- package/package.json +58 -22
- package/src/.metadata/index.ts +359 -0
- package/src/.metadata/this.ts +2 -0
- package/src/bean/bean.socket.ts +60 -0
- package/src/bean/broadcast.broadcast.ts +23 -0
- package/src/bean/broadcast.send.ts +22 -0
- package/src/bean/hmr.socketConnection.ts +14 -0
- package/src/bean/hmr.socketPacket.ts +14 -0
- package/src/bean/socketConnection.alive.ts +48 -0
- package/src/bean/socketConnection.app.ts +26 -0
- package/src/bean/socketConnection.cors.ts +27 -0
- package/src/bean/socketConnection.event.ts +34 -0
- package/src/bean/socketConnection.instance.ts +23 -0
- package/src/bean/socketConnection.passport.ts +37 -0
- package/src/bean/socketConnection.ready.ts +21 -0
- package/src/bean/socketPacket.event.ts +29 -0
- package/src/bean/socketPacket.performAction.ts +37 -0
- package/src/config/config.ts +19 -0
- package/src/index.ts +3 -0
- package/src/lib/beanSocketNamespaceBase.ts +15 -0
- package/src/lib/const.ts +22 -0
- package/src/lib/index.ts +5 -0
- package/src/lib/socketConnection.ts +7 -0
- package/src/lib/socketNamespace.ts +9 -0
- package/src/lib/socketPacket.ts +7 -0
- package/src/monkey.ts +15 -0
- package/src/service/socket.ts +180 -0
- package/src/service/socketEvent.ts +30 -0
- package/src/types/index.ts +5 -0
- package/src/types/socket.ts +21 -0
- package/src/types/socketConnection.ts +41 -0
- package/src/types/socketEvent.ts +55 -0
- package/src/types/socketNamespace.ts +27 -0
- package/src/types/socketPacket.ts +30 -0
- package/README.md +0 -1
package/dist/index.js
ADDED
|
@@ -0,0 +1,632 @@
|
|
|
1
|
+
import { BeanInfo, BeanBase, uuidv4, createBeanDecorator, cast, $customKey, BeanSimple, BeanScopeBase } from 'vona';
|
|
2
|
+
import { __decorate } from 'tslib';
|
|
3
|
+
import { Bean, Service, Scope } from 'vona-module-a-bean';
|
|
4
|
+
import { compose } from '@cabloy/compose';
|
|
5
|
+
import { AsyncResource } from 'node:async_hooks';
|
|
6
|
+
import { URL } from 'node:url';
|
|
7
|
+
import { WebSocketServer } from 'ws';
|
|
8
|
+
import { Broadcast, BeanBroadcastBase } from 'vona-module-a-broadcast';
|
|
9
|
+
import { SocketConnection as SocketConnection$1 } from 'vona-module-a-socket';
|
|
10
|
+
import { Hmr } from 'vona-module-a-hmrbase';
|
|
11
|
+
|
|
12
|
+
let BeanSocket = class BeanSocket extends BeanBase {
|
|
13
|
+
constructor(...args) {
|
|
14
|
+
super(...args);
|
|
15
|
+
this._clients = {};
|
|
16
|
+
this._clientsNamespace = {};
|
|
17
|
+
}
|
|
18
|
+
async __dispose__() {
|
|
19
|
+
this.close();
|
|
20
|
+
}
|
|
21
|
+
close() {
|
|
22
|
+
const clients = this._clients;
|
|
23
|
+
this._clients = {};
|
|
24
|
+
for (const id in clients) {
|
|
25
|
+
clients[id]?.terminate();
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
get clients() {
|
|
29
|
+
return this._clients;
|
|
30
|
+
}
|
|
31
|
+
get clientsNamespace() {
|
|
32
|
+
return this._clientsNamespace;
|
|
33
|
+
}
|
|
34
|
+
getClient(id) {
|
|
35
|
+
return this._clients[id];
|
|
36
|
+
}
|
|
37
|
+
addClient(ws) {
|
|
38
|
+
const id = ws.id;
|
|
39
|
+
const namespace = ws.namespace;
|
|
40
|
+
this._clients[id] = ws;
|
|
41
|
+
if (!this._clientsNamespace[namespace]) this._clientsNamespace[namespace] = [];
|
|
42
|
+
this._clientsNamespace[namespace].push(id);
|
|
43
|
+
}
|
|
44
|
+
removeClient(ws) {
|
|
45
|
+
const id = typeof ws === 'string' ? ws : ws.id;
|
|
46
|
+
const ws2 = this.getClient(id);
|
|
47
|
+
if (!ws2) return;
|
|
48
|
+
const namespace = ws2.namespace;
|
|
49
|
+
delete this._clients[id];
|
|
50
|
+
if (this._clientsNamespace[namespace]) {
|
|
51
|
+
const index = this._clientsNamespace[namespace].indexOf(id);
|
|
52
|
+
if (index !== -1) {
|
|
53
|
+
this._clientsNamespace[namespace].splice(index, 1);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
BeanSocket = __decorate([Bean(), BeanInfo({
|
|
59
|
+
module: "a-socket"
|
|
60
|
+
})], BeanSocket);
|
|
61
|
+
|
|
62
|
+
const SymbolCacheSocketConnections = Symbol('SymbolCacheSocketConnections');
|
|
63
|
+
const SymbolCacheSocketPackets = Symbol('SymbolCacheSocketPackets');
|
|
64
|
+
function getCacheSocketConnections(app) {
|
|
65
|
+
if (!app.meta[SymbolCacheSocketConnections]) app.meta[SymbolCacheSocketConnections] = {};
|
|
66
|
+
return app.meta[SymbolCacheSocketConnections];
|
|
67
|
+
}
|
|
68
|
+
function clearAllCacheSocketConnections(app) {
|
|
69
|
+
delete app.meta[SymbolCacheSocketConnections];
|
|
70
|
+
}
|
|
71
|
+
function getCacheSocketPackets(app) {
|
|
72
|
+
if (!app.meta[SymbolCacheSocketPackets]) app.meta[SymbolCacheSocketPackets] = {};
|
|
73
|
+
return app.meta[SymbolCacheSocketPackets];
|
|
74
|
+
}
|
|
75
|
+
function clearAllCacheSocketPackets(app) {
|
|
76
|
+
delete app.meta[SymbolCacheSocketPackets];
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
let ServiceSocket = class ServiceSocket extends BeanBase {
|
|
80
|
+
async appReady() {
|
|
81
|
+
// maybe running in play
|
|
82
|
+
if (!this.app.server) return;
|
|
83
|
+
// wss
|
|
84
|
+
this.app.wss = new WebSocketServer({
|
|
85
|
+
server: this.app.server
|
|
86
|
+
});
|
|
87
|
+
this.app.wss.on('connection', (ws, req) => {
|
|
88
|
+
this._onConnection(ws, req);
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
async appClose() {
|
|
92
|
+
this.app.wss.close();
|
|
93
|
+
this.bean.socket.close();
|
|
94
|
+
}
|
|
95
|
+
async _onConnection(ws, req) {
|
|
96
|
+
if (this.app.meta.appClose) {
|
|
97
|
+
// terminate
|
|
98
|
+
ws.terminate();
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
const url = URL.parse(req.url ?? '', `https://${req.headers.host}`); // req.headers.host 'http://localhost'
|
|
102
|
+
const instanceName = url?.searchParams.get(this.scope.config.queryKey.instanceName) || undefined;
|
|
103
|
+
const locale = url?.searchParams.get(this.scope.config.queryKey.locale) || undefined;
|
|
104
|
+
const tz = url?.searchParams.get(this.scope.config.queryKey.tz) || undefined;
|
|
105
|
+
// enter
|
|
106
|
+
return await this.app.bean.executor.newCtx(async () => {
|
|
107
|
+
const ctx = this.app.ctx;
|
|
108
|
+
// ws
|
|
109
|
+
Object.defineProperty(ctx, 'ws', {
|
|
110
|
+
get() {
|
|
111
|
+
return ws;
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
// enter
|
|
115
|
+
try {
|
|
116
|
+
// namespace
|
|
117
|
+
ws.namespace = this.getNamespace();
|
|
118
|
+
// id
|
|
119
|
+
ws.id = uuidv4();
|
|
120
|
+
// add
|
|
121
|
+
this.bean.socket.addClient(ws);
|
|
122
|
+
// compose
|
|
123
|
+
await this._getComposeSocketConnections(ws.namespace)({
|
|
124
|
+
method: 'enter',
|
|
125
|
+
ws
|
|
126
|
+
});
|
|
127
|
+
} catch (err) {
|
|
128
|
+
this.app.handleError(err);
|
|
129
|
+
// terminate
|
|
130
|
+
ws.terminate();
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
// promise
|
|
134
|
+
return new Promise(resolve => {
|
|
135
|
+
// exit
|
|
136
|
+
ws.onclose = AsyncResource.bind(async () => {
|
|
137
|
+
try {
|
|
138
|
+
// compose
|
|
139
|
+
await this._getComposeSocketConnections(ws.namespace)({
|
|
140
|
+
method: 'exit',
|
|
141
|
+
ws
|
|
142
|
+
});
|
|
143
|
+
} catch (err) {
|
|
144
|
+
this.app.handleError(err);
|
|
145
|
+
} finally {
|
|
146
|
+
// remove
|
|
147
|
+
this.bean.socket.removeClient(ws);
|
|
148
|
+
resolve(undefined);
|
|
149
|
+
}
|
|
150
|
+
});
|
|
151
|
+
// message
|
|
152
|
+
ws.onmessage = AsyncResource.bind(async event => {
|
|
153
|
+
try {
|
|
154
|
+
await this._getComposeSocketPackets(ws.namespace)({
|
|
155
|
+
data: event.data,
|
|
156
|
+
ws
|
|
157
|
+
});
|
|
158
|
+
} catch (err) {
|
|
159
|
+
this.app.handleError(err);
|
|
160
|
+
}
|
|
161
|
+
});
|
|
162
|
+
// error
|
|
163
|
+
ws.onerror = AsyncResource.bind(event => {
|
|
164
|
+
this.$logger.error(event.error);
|
|
165
|
+
});
|
|
166
|
+
// onReady
|
|
167
|
+
ws.sendEvent('sysReady');
|
|
168
|
+
});
|
|
169
|
+
}, {
|
|
170
|
+
dbInfo: {
|
|
171
|
+
level: 0
|
|
172
|
+
},
|
|
173
|
+
innerAccess: false,
|
|
174
|
+
req,
|
|
175
|
+
instanceName,
|
|
176
|
+
locale,
|
|
177
|
+
tz
|
|
178
|
+
}); // not set instance: true
|
|
179
|
+
}
|
|
180
|
+
getNamespace() {
|
|
181
|
+
const globalPrefix = this.scope.config.globalPrefix;
|
|
182
|
+
let path = this.ctx.path;
|
|
183
|
+
if (path.startsWith(globalPrefix)) {
|
|
184
|
+
path = path.substring(globalPrefix.length);
|
|
185
|
+
}
|
|
186
|
+
if (!path) path = '/';
|
|
187
|
+
return path;
|
|
188
|
+
}
|
|
189
|
+
_getComposeSocketConnections(namespace) {
|
|
190
|
+
const cacheSocketConnections = getCacheSocketConnections(this.app);
|
|
191
|
+
if (!cacheSocketConnections[namespace]) {
|
|
192
|
+
const connections = this.bean.onion.socketConnection.getOnionsEnabledWrapped(item => {
|
|
193
|
+
return this._wrapOnionConnection(item);
|
|
194
|
+
});
|
|
195
|
+
cacheSocketConnections[namespace] = compose(connections);
|
|
196
|
+
}
|
|
197
|
+
return cacheSocketConnections[namespace];
|
|
198
|
+
}
|
|
199
|
+
_getComposeSocketPackets(namespace) {
|
|
200
|
+
const cacheSocketPackets = getCacheSocketPackets(this.app);
|
|
201
|
+
if (!cacheSocketPackets[namespace]) {
|
|
202
|
+
const packets = this.bean.onion.socketPacket.getOnionsEnabledWrapped(item => {
|
|
203
|
+
return this._wrapOnionPacket(item);
|
|
204
|
+
});
|
|
205
|
+
cacheSocketPackets[namespace] = compose(packets);
|
|
206
|
+
}
|
|
207
|
+
return cacheSocketPackets[namespace];
|
|
208
|
+
}
|
|
209
|
+
_wrapOnionConnection(item) {
|
|
210
|
+
const fn = (data, next) => {
|
|
211
|
+
const options = item.beanOptions.options;
|
|
212
|
+
// execute
|
|
213
|
+
const beanFullName = item.beanOptions.beanFullName;
|
|
214
|
+
const beanInstance = this.app.bean._getBean(beanFullName);
|
|
215
|
+
if (!beanInstance) {
|
|
216
|
+
throw new Error(`socketConnection bean not found: ${beanFullName}`);
|
|
217
|
+
}
|
|
218
|
+
return beanInstance[data.method](data.ws, options, next);
|
|
219
|
+
};
|
|
220
|
+
fn._name = item.name;
|
|
221
|
+
return fn;
|
|
222
|
+
}
|
|
223
|
+
_wrapOnionPacket(item) {
|
|
224
|
+
const fn = (data, next) => {
|
|
225
|
+
const options = item.beanOptions.options;
|
|
226
|
+
// execute
|
|
227
|
+
const beanFullName = item.beanOptions.beanFullName;
|
|
228
|
+
const beanInstance = this.app.bean._getBean(beanFullName);
|
|
229
|
+
if (!beanInstance) {
|
|
230
|
+
throw new Error(`socketPacket bean not found: ${beanFullName}`);
|
|
231
|
+
}
|
|
232
|
+
return beanInstance.execute(data.data, data.ws, options, _patchPacketNext(data, next));
|
|
233
|
+
};
|
|
234
|
+
fn._name = item.name;
|
|
235
|
+
return fn;
|
|
236
|
+
}
|
|
237
|
+
};
|
|
238
|
+
ServiceSocket = __decorate([Service(), BeanInfo({
|
|
239
|
+
module: "a-socket"
|
|
240
|
+
})], ServiceSocket);
|
|
241
|
+
function _patchPacketNext(data, next) {
|
|
242
|
+
return (...args) => {
|
|
243
|
+
const context = args.length === 0 ? data.data : args[0];
|
|
244
|
+
return next({
|
|
245
|
+
data: context,
|
|
246
|
+
ws: data.ws
|
|
247
|
+
});
|
|
248
|
+
};
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
let ServiceSocketEvent = class ServiceSocketEvent extends BeanBase {
|
|
252
|
+
send(id, eventName, data, options) {
|
|
253
|
+
this.sendWorker(id, eventName, data, options);
|
|
254
|
+
this.scope.broadcast.send.emit({
|
|
255
|
+
id,
|
|
256
|
+
eventName,
|
|
257
|
+
data,
|
|
258
|
+
options
|
|
259
|
+
});
|
|
260
|
+
}
|
|
261
|
+
sendWorker(id, eventName, data, options) {
|
|
262
|
+
this.bean.socket.clients[id]?.sendEvent(eventName, data, options);
|
|
263
|
+
}
|
|
264
|
+
broadcast(namespace, eventName, data, options) {
|
|
265
|
+
this.broadcastWorker(namespace, eventName, data, options);
|
|
266
|
+
this.scope.broadcast.broadcast.emit({
|
|
267
|
+
namespace,
|
|
268
|
+
eventName,
|
|
269
|
+
data,
|
|
270
|
+
options
|
|
271
|
+
});
|
|
272
|
+
}
|
|
273
|
+
broadcastWorker(namespace, eventName, data, options) {
|
|
274
|
+
const ids = this.bean.socket.clientsNamespace[namespace];
|
|
275
|
+
if (!ids) return;
|
|
276
|
+
for (const id of ids) {
|
|
277
|
+
this.bean.socket.clients[id]?.sendEvent(eventName, data, options);
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
};
|
|
281
|
+
ServiceSocketEvent = __decorate([Service(), BeanInfo({
|
|
282
|
+
module: "a-socket"
|
|
283
|
+
})], ServiceSocketEvent);
|
|
284
|
+
|
|
285
|
+
let BroadcastBroadcast = class BroadcastBroadcast extends BeanBroadcastBase {
|
|
286
|
+
async execute(data, isEmitter) {
|
|
287
|
+
const {
|
|
288
|
+
namespace,
|
|
289
|
+
eventName,
|
|
290
|
+
data: eventData,
|
|
291
|
+
options
|
|
292
|
+
} = data;
|
|
293
|
+
if (!isEmitter) {
|
|
294
|
+
this.scope.service.socketEvent.broadcastWorker(namespace, eventName, eventData, options);
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
};
|
|
298
|
+
BroadcastBroadcast = __decorate([Broadcast(), BeanInfo({
|
|
299
|
+
module: "a-socket"
|
|
300
|
+
})], BroadcastBroadcast);
|
|
301
|
+
|
|
302
|
+
let BroadcastSend = class BroadcastSend extends BeanBroadcastBase {
|
|
303
|
+
async execute(data, isEmitter) {
|
|
304
|
+
const {
|
|
305
|
+
id,
|
|
306
|
+
eventName,
|
|
307
|
+
data: eventData,
|
|
308
|
+
options
|
|
309
|
+
} = data;
|
|
310
|
+
if (!isEmitter) {
|
|
311
|
+
this.scope.service.socketEvent.sendWorker(id, eventName, eventData, options);
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
};
|
|
315
|
+
BroadcastSend = __decorate([Broadcast(), BeanInfo({
|
|
316
|
+
module: "a-socket"
|
|
317
|
+
})], BroadcastSend);
|
|
318
|
+
|
|
319
|
+
let SocketConnectionAlive = class SocketConnectionAlive extends BeanBase {
|
|
320
|
+
constructor(...args) {
|
|
321
|
+
super(...args);
|
|
322
|
+
this._interval = void 0;
|
|
323
|
+
}
|
|
324
|
+
async __dispose__() {
|
|
325
|
+
if (this._interval) {
|
|
326
|
+
clearInterval(this._interval);
|
|
327
|
+
this._interval = null;
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
async enter(ws, _options, next) {
|
|
331
|
+
// isAlive
|
|
332
|
+
ws.isAlive = true;
|
|
333
|
+
ws.on('pong', () => {
|
|
334
|
+
ws.isAlive = true;
|
|
335
|
+
});
|
|
336
|
+
// start interval
|
|
337
|
+
this._startInterval();
|
|
338
|
+
// next
|
|
339
|
+
return next();
|
|
340
|
+
}
|
|
341
|
+
async exit(_ws, _options, next) {
|
|
342
|
+
// next
|
|
343
|
+
await next();
|
|
344
|
+
}
|
|
345
|
+
_startInterval() {
|
|
346
|
+
if (this._interval) return;
|
|
347
|
+
this._interval = setInterval(() => {
|
|
348
|
+
this.app.wss.clients.forEach(ws => {
|
|
349
|
+
if (ws.isAlive === false) return ws.terminate();
|
|
350
|
+
ws.isAlive = false;
|
|
351
|
+
ws.ping();
|
|
352
|
+
});
|
|
353
|
+
}, this.scope.config.timeout.ping);
|
|
354
|
+
}
|
|
355
|
+
};
|
|
356
|
+
SocketConnectionAlive = __decorate([SocketConnection$1(), BeanInfo({
|
|
357
|
+
module: "a-socket"
|
|
358
|
+
})], SocketConnectionAlive);
|
|
359
|
+
|
|
360
|
+
let SocketConnectionApp = class SocketConnectionApp extends BeanBase {
|
|
361
|
+
async enter(_ws, _options, next) {
|
|
362
|
+
// check appReady
|
|
363
|
+
if (!this.ctx.innerAccess) {
|
|
364
|
+
if (this.app.meta.appClose) this.app.throw(423);
|
|
365
|
+
await this.$scope.instance.service.instance.checkAppReady();
|
|
366
|
+
}
|
|
367
|
+
// next
|
|
368
|
+
return next();
|
|
369
|
+
}
|
|
370
|
+
async exit(_ws, _options, next) {
|
|
371
|
+
// next
|
|
372
|
+
return next();
|
|
373
|
+
}
|
|
374
|
+
};
|
|
375
|
+
SocketConnectionApp = __decorate([SocketConnection$1({
|
|
376
|
+
dependencies: 'a-socket:alive'
|
|
377
|
+
}), BeanInfo({
|
|
378
|
+
module: "a-socket"
|
|
379
|
+
})], SocketConnectionApp);
|
|
380
|
+
|
|
381
|
+
let SocketConnectionCors = class SocketConnectionCors extends BeanBase {
|
|
382
|
+
async enter(ws, _options, next) {
|
|
383
|
+
// cors
|
|
384
|
+
const origin = this.bean.security.checkOrigin(this.ctx.get('origin'), this.ctx.host);
|
|
385
|
+
if (!origin) {
|
|
386
|
+
ws.terminate();
|
|
387
|
+
return;
|
|
388
|
+
}
|
|
389
|
+
// next
|
|
390
|
+
return next();
|
|
391
|
+
}
|
|
392
|
+
async exit(_ws, _options, next) {
|
|
393
|
+
// next
|
|
394
|
+
return next();
|
|
395
|
+
}
|
|
396
|
+
};
|
|
397
|
+
SocketConnectionCors = __decorate([SocketConnection$1({
|
|
398
|
+
dependencies: 'a-socket:instance'
|
|
399
|
+
}), BeanInfo({
|
|
400
|
+
module: "a-socket"
|
|
401
|
+
})], SocketConnectionCors);
|
|
402
|
+
|
|
403
|
+
function SocketConnection(options) {
|
|
404
|
+
return createBeanDecorator('socketConnection', options);
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
const socketEventRecord = {
|
|
408
|
+
sysReady: '_a',
|
|
409
|
+
sysPerformAction: '_b',
|
|
410
|
+
sysPerformActionBack: '_c'
|
|
411
|
+
};
|
|
412
|
+
const socketEventRecordReverse = {
|
|
413
|
+
_a: 'sysReady',
|
|
414
|
+
_b: 'sysPerformAction',
|
|
415
|
+
_c: 'sysPerformActionBack'
|
|
416
|
+
};
|
|
417
|
+
|
|
418
|
+
let SocketConnectionEvent = class SocketConnectionEvent extends BeanBase {
|
|
419
|
+
async enter(ws, _options, next) {
|
|
420
|
+
// sendEvent
|
|
421
|
+
cast(ws).sendEvent = (eventName, data, options, cb) => {
|
|
422
|
+
if (typeof options === 'function') {
|
|
423
|
+
cb = options;
|
|
424
|
+
options = {};
|
|
425
|
+
}
|
|
426
|
+
const eventNameInner = socketEventRecord[eventName] ?? eventName;
|
|
427
|
+
ws.send(`${this.scope.config.eventPrefix}${JSON.stringify([eventNameInner, data])}`, options, cb);
|
|
428
|
+
};
|
|
429
|
+
// next
|
|
430
|
+
return next();
|
|
431
|
+
}
|
|
432
|
+
async exit(_ws, _options, next) {
|
|
433
|
+
// next
|
|
434
|
+
return next();
|
|
435
|
+
}
|
|
436
|
+
};
|
|
437
|
+
SocketConnectionEvent = __decorate([SocketConnection({
|
|
438
|
+
dependencies: 'a-socket:cors'
|
|
439
|
+
}), BeanInfo({
|
|
440
|
+
module: "a-socket"
|
|
441
|
+
})], SocketConnectionEvent);
|
|
442
|
+
|
|
443
|
+
let SocketConnectionInstance = class SocketConnectionInstance extends BeanBase {
|
|
444
|
+
async enter(_ws, _options, next) {
|
|
445
|
+
// init instance
|
|
446
|
+
await this.$scope.instance.service.instance.initInstance();
|
|
447
|
+
// next
|
|
448
|
+
return next();
|
|
449
|
+
}
|
|
450
|
+
async exit(_ws, _options, next) {
|
|
451
|
+
// next
|
|
452
|
+
return next();
|
|
453
|
+
}
|
|
454
|
+
};
|
|
455
|
+
SocketConnectionInstance = __decorate([SocketConnection$1({
|
|
456
|
+
dependencies: 'a-socket:app'
|
|
457
|
+
}), BeanInfo({
|
|
458
|
+
module: "a-socket"
|
|
459
|
+
})], SocketConnectionInstance);
|
|
460
|
+
|
|
461
|
+
let SocketConnectionPassport = class SocketConnectionPassport extends BeanBase {
|
|
462
|
+
async enter(ws, _options, next) {
|
|
463
|
+
// checkOauthCode
|
|
464
|
+
await this._checkOauthCode(ws);
|
|
465
|
+
// next
|
|
466
|
+
return next();
|
|
467
|
+
}
|
|
468
|
+
async exit(_ws, _options, next) {
|
|
469
|
+
// next
|
|
470
|
+
return next();
|
|
471
|
+
}
|
|
472
|
+
async _checkOauthCode(_ws) {
|
|
473
|
+
// auth token
|
|
474
|
+
if (!this.bean.passport.current) {
|
|
475
|
+
const code = this.ctx.query[this.scope.config.queryKey.passportCode];
|
|
476
|
+
if (code) {
|
|
477
|
+
await this.bean.passport.checkAuthToken(code, 'access', {
|
|
478
|
+
path: this.ctx.path
|
|
479
|
+
});
|
|
480
|
+
}
|
|
481
|
+
}
|
|
482
|
+
// check current
|
|
483
|
+
if (!this.bean.passport.current) {
|
|
484
|
+
await this.bean.passport.signinWithAnonymous();
|
|
485
|
+
}
|
|
486
|
+
}
|
|
487
|
+
};
|
|
488
|
+
SocketConnectionPassport = __decorate([SocketConnection$1({
|
|
489
|
+
dependencies: 'a-socket:event'
|
|
490
|
+
}), BeanInfo({
|
|
491
|
+
module: "a-socket"
|
|
492
|
+
})], SocketConnectionPassport);
|
|
493
|
+
|
|
494
|
+
let SocketConnectionReady = class SocketConnectionReady extends BeanBase {
|
|
495
|
+
async enter(_ws, _options, next) {
|
|
496
|
+
// next
|
|
497
|
+
return next();
|
|
498
|
+
}
|
|
499
|
+
async exit(_ws, _options, next) {
|
|
500
|
+
// next
|
|
501
|
+
return next();
|
|
502
|
+
}
|
|
503
|
+
};
|
|
504
|
+
SocketConnectionReady = __decorate([SocketConnection$1({
|
|
505
|
+
dependencies: 'a-socket:passport'
|
|
506
|
+
}), BeanInfo({
|
|
507
|
+
module: "a-socket"
|
|
508
|
+
})], SocketConnectionReady);
|
|
509
|
+
|
|
510
|
+
function SocketPacket(options) {
|
|
511
|
+
return createBeanDecorator('socketPacket', options);
|
|
512
|
+
}
|
|
513
|
+
|
|
514
|
+
let SocketPacketEvent = class SocketPacketEvent extends BeanBase {
|
|
515
|
+
async execute(data, _ws, _options, next) {
|
|
516
|
+
let packet;
|
|
517
|
+
const eventPrefix = this.scope.config.eventPrefix;
|
|
518
|
+
if (typeof data === 'string' && data.startsWith(eventPrefix)) {
|
|
519
|
+
const packetInner = JSON.parse(data.substring(eventPrefix.length));
|
|
520
|
+
const eventName = socketEventRecordReverse[packetInner[0]] ?? packetInner[0];
|
|
521
|
+
packet = [eventName, packetInner[1]];
|
|
522
|
+
} else {
|
|
523
|
+
packet = [undefined, data];
|
|
524
|
+
}
|
|
525
|
+
// next
|
|
526
|
+
return next(packet);
|
|
527
|
+
}
|
|
528
|
+
};
|
|
529
|
+
SocketPacketEvent = __decorate([SocketPacket(), BeanInfo({
|
|
530
|
+
module: "a-socket"
|
|
531
|
+
})], SocketPacketEvent);
|
|
532
|
+
|
|
533
|
+
let SocketPacketPerformAction = class SocketPacketPerformAction extends BeanBase {
|
|
534
|
+
async execute(packet, ws, _options, next) {
|
|
535
|
+
const eventName = packet[0];
|
|
536
|
+
const data = packet[1];
|
|
537
|
+
if (eventName !== 'sysPerformAction') return next();
|
|
538
|
+
try {
|
|
539
|
+
// performAction
|
|
540
|
+
const res = await this.$scope.executor.service.executor.performActionInner(data.m, data.p, {
|
|
541
|
+
innerAccess: false,
|
|
542
|
+
query: data.q,
|
|
543
|
+
body: data.b,
|
|
544
|
+
headers: data.h
|
|
545
|
+
});
|
|
546
|
+
ws.sendEvent('sysPerformActionBack', {
|
|
547
|
+
i: data.i,
|
|
548
|
+
c: 0,
|
|
549
|
+
d: res
|
|
550
|
+
});
|
|
551
|
+
} catch (err) {
|
|
552
|
+
ws.sendEvent('sysPerformActionBack', {
|
|
553
|
+
i: data.i,
|
|
554
|
+
c: err.code,
|
|
555
|
+
m: err.message
|
|
556
|
+
});
|
|
557
|
+
}
|
|
558
|
+
}
|
|
559
|
+
};
|
|
560
|
+
SocketPacketPerformAction = __decorate([SocketPacket({
|
|
561
|
+
dependencies: 'a-socket:event'
|
|
562
|
+
}), BeanInfo({
|
|
563
|
+
module: "a-socket"
|
|
564
|
+
})], SocketPacketPerformAction);
|
|
565
|
+
|
|
566
|
+
let HmrSocketConnection = class HmrSocketConnection extends BeanBase {
|
|
567
|
+
async reload(_beanOptions) {
|
|
568
|
+
clearAllCacheSocketConnections(this.app);
|
|
569
|
+
}
|
|
570
|
+
};
|
|
571
|
+
HmrSocketConnection = __decorate([Hmr(), BeanInfo({
|
|
572
|
+
module: "a-socket"
|
|
573
|
+
})], HmrSocketConnection);
|
|
574
|
+
|
|
575
|
+
let HmrSocketPacket = class HmrSocketPacket extends BeanBase {
|
|
576
|
+
async reload(_beanOptions) {
|
|
577
|
+
clearAllCacheSocketPackets(this.app);
|
|
578
|
+
}
|
|
579
|
+
};
|
|
580
|
+
HmrSocketPacket = __decorate([Hmr(), BeanInfo({
|
|
581
|
+
module: "a-socket"
|
|
582
|
+
})], HmrSocketPacket);
|
|
583
|
+
|
|
584
|
+
function config(_app) {
|
|
585
|
+
return {
|
|
586
|
+
eventPrefix: '_:',
|
|
587
|
+
globalPrefix: '/ws',
|
|
588
|
+
queryKey: {
|
|
589
|
+
passportCode: $customKey('x-vona-passport-code'),
|
|
590
|
+
instanceName: $customKey('x-vona-instance-name'),
|
|
591
|
+
locale: $customKey('x-vona-locale'),
|
|
592
|
+
tz: $customKey('x-vona-tz')
|
|
593
|
+
},
|
|
594
|
+
timeout: {
|
|
595
|
+
ping: 20000
|
|
596
|
+
}
|
|
597
|
+
};
|
|
598
|
+
}
|
|
599
|
+
|
|
600
|
+
const __ThisModule__ = 'a-socket';
|
|
601
|
+
|
|
602
|
+
class Monkey extends BeanSimple {
|
|
603
|
+
async appReady() {
|
|
604
|
+
await this.app.scope(__ThisModule__).service.socket.appReady();
|
|
605
|
+
}
|
|
606
|
+
async appClose() {
|
|
607
|
+
await this.app.scope(__ThisModule__).service.socket.appClose();
|
|
608
|
+
}
|
|
609
|
+
}
|
|
610
|
+
|
|
611
|
+
let ScopeModuleASocket = class ScopeModuleASocket extends BeanScopeBase {};
|
|
612
|
+
ScopeModuleASocket = __decorate([Scope(), BeanInfo({
|
|
613
|
+
module: "a-socket"
|
|
614
|
+
})], ScopeModuleASocket);
|
|
615
|
+
/** scope: end */
|
|
616
|
+
|
|
617
|
+
class BeanSocketNamespaceBase extends BeanBase {
|
|
618
|
+
send(id, eventName, data, options) {
|
|
619
|
+
this.$scope.socket.service.socketEvent.send(id, eventName, data, options);
|
|
620
|
+
}
|
|
621
|
+
broadcast(eventName, data, options) {
|
|
622
|
+
const namespace = cast(this.$onionOptions).namespace;
|
|
623
|
+
this.$scope.socket.service.socketEvent.broadcast(namespace, eventName, data, options);
|
|
624
|
+
}
|
|
625
|
+
}
|
|
626
|
+
|
|
627
|
+
function SocketNamespace(options) {
|
|
628
|
+
return createBeanDecorator('socketNamespace', options);
|
|
629
|
+
}
|
|
630
|
+
|
|
631
|
+
export { BeanSocket, BeanSocketNamespaceBase, BroadcastBroadcast, BroadcastSend, HmrSocketConnection, HmrSocketPacket, Monkey, ScopeModuleASocket, ServiceSocket, ServiceSocketEvent, SocketConnection, SocketConnectionAlive, SocketConnectionApp, SocketConnectionCors, SocketConnectionEvent, SocketConnectionInstance, SocketConnectionPassport, SocketConnectionReady, SocketNamespace, SocketPacket, SocketPacketEvent, SocketPacketPerformAction, SymbolCacheSocketConnections, SymbolCacheSocketPackets, clearAllCacheSocketConnections, clearAllCacheSocketPackets, config, getCacheSocketConnections, getCacheSocketPackets, socketEventRecord, socketEventRecordReverse };
|
|
632
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/bean/bean.socket.ts","../src/lib/const.ts","../src/service/socket.ts","../src/service/socketEvent.ts","../src/bean/broadcast.broadcast.ts","../src/bean/broadcast.send.ts","../src/bean/socketConnection.alive.ts","../src/bean/socketConnection.app.ts","../src/bean/socketConnection.cors.ts","../src/lib/socketConnection.ts","../src/types/socketEvent.ts","../src/bean/socketConnection.event.ts","../src/bean/socketConnection.instance.ts","../src/bean/socketConnection.passport.ts","../src/bean/socketConnection.ready.ts","../src/lib/socketPacket.ts","../src/bean/socketPacket.event.ts","../src/bean/socketPacket.performAction.ts","../src/bean/hmr.socketConnection.ts","../src/bean/hmr.socketPacket.ts","../src/config/config.ts","../src/.metadata/this.ts","../src/monkey.ts","../src/.metadata/index.ts","../src/lib/beanSocketNamespaceBase.ts","../src/lib/socketNamespace.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["BeanSocket","BeanBase","constructor","args","_clients","_clientsNamespace","__dispose__","close","clients","id","terminate","clientsNamespace","getClient","addClient","ws","namespace","push","removeClient","ws2","index","indexOf","splice","__decorate","Bean","__z_BeanInfo","module","SymbolCacheSocketConnections","Symbol","SymbolCacheSocketPackets","getCacheSocketConnections","app","meta","clearAllCacheSocketConnections","getCacheSocketPackets","clearAllCacheSocketPackets","ServiceSocket","appReady","server","wss","WebSocketServer","on","req","_onConnection","appClose","bean","socket","url","URL","parse","headers","host","instanceName","searchParams","get","scope","config","queryKey","undefined","locale","tz","executor","newCtx","ctx","Object","defineProperty","getNamespace","uuidv4","_getComposeSocketConnections","method","err","handleError","Promise","resolve","onclose","AsyncResource","bind","onmessage","event","_getComposeSocketPackets","data","onerror","$logger","error","sendEvent","dbInfo","level","innerAccess","globalPrefix","path","startsWith","substring","length","cacheSocketConnections","connections","onion","socketConnection","getOnionsEnabledWrapped","item","_wrapOnionConnection","compose","cacheSocketPackets","packets","socketPacket","_wrapOnionPacket","fn","next","options","beanOptions","beanFullName","beanInstance","_getBean","Error","_name","name","execute","_patchPacketNext","Service","context","ServiceSocketEvent","send","eventName","sendWorker","broadcast","emit","broadcastWorker","ids","BroadcastBroadcast","BeanBroadcastBase","isEmitter","eventData","service","socketEvent","Broadcast","BroadcastSend","SocketConnectionAlive","_interval","clearInterval","enter","_options","isAlive","_startInterval","exit","_ws","setInterval","forEach","ping","timeout","SocketConnection","SocketConnectionApp","throw","$scope","instance","checkAppReady","dependencies","SocketConnectionCors","origin","security","checkOrigin","createBeanDecorator","socketEventRecord","sysReady","sysPerformAction","sysPerformActionBack","socketEventRecordReverse","_a","_b","_c","SocketConnectionEvent","cast","cb","eventNameInner","eventPrefix","JSON","stringify","SocketConnectionInstance","initInstance","SocketConnectionPassport","_checkOauthCode","passport","current","code","query","passportCode","checkAuthToken","signinWithAnonymous","SocketConnectionReady","SocketPacket","SocketPacketEvent","packet","packetInner","SocketPacketPerformAction","res","performActionInner","m","p","q","body","b","h","i","c","d","message","HmrSocketConnection","reload","_beanOptions","Hmr","HmrSocketPacket","_app","$customKey","__ThisModule__","Monkey","BeanSimple","ScopeModuleASocket","BeanScopeBase","Scope","BeanSocketNamespaceBase","$onionOptions","SocketNamespace"],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { BeanBase } from 'vona';
|
|
2
|
+
import type { ISendEventOptions } from '../types/socketEvent.ts';
|
|
3
|
+
export declare class BeanSocketNamespaceBase<EVENTS extends {}> extends BeanBase {
|
|
4
|
+
send<K extends keyof EVENTS>(id: string, eventName: K, data?: EVENTS[K], options?: ISendEventOptions): void;
|
|
5
|
+
broadcast<K extends keyof EVENTS>(eventName: K, data?: EVENTS[K], options?: ISendEventOptions): void;
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=beanSocketNamespaceBase.d.ts.map
|