@cloudpss/ubrpc 0.4.11 → 0.4.12
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/server.d.ts +2 -2
- package/dist/server.js +7 -8
- package/dist/server.js.map +1 -1
- package/package.json +2 -2
- package/src/server.ts +8 -9
package/dist/server.d.ts
CHANGED
|
@@ -31,7 +31,7 @@ export declare class RpcServer<TRemote extends {}, TLocal extends {}> {
|
|
|
31
31
|
/** 由 WS Server 建立的 RPC 连接 */
|
|
32
32
|
export declare class RpcServerSocket<TRemote extends object, TLocal extends object> extends RpcSocket<TRemote, TLocal> {
|
|
33
33
|
readonly server: RpcServer<TRemote, TLocal>;
|
|
34
|
-
constructor(id: ConnectionID, server: RpcServer<TRemote, TLocal
|
|
34
|
+
constructor(id: ConnectionID, server: RpcServer<TRemote, TLocal>);
|
|
35
35
|
/** @inheritdoc */
|
|
36
36
|
protected authSocket(): Promise<RpcMetadata>;
|
|
37
37
|
/** @inheritdoc */
|
|
@@ -39,6 +39,6 @@ export declare class RpcServerSocket<TRemote extends object, TLocal extends obje
|
|
|
39
39
|
/** @inheritdoc */
|
|
40
40
|
protected onClose(ev: WebSocket.CloseEvent): void;
|
|
41
41
|
/** 替换 socket */
|
|
42
|
-
[kReplaceSocket](newSocket: WebSocketWithMetadata): void
|
|
42
|
+
[kReplaceSocket](newSocket: WebSocketWithMetadata): Promise<void>;
|
|
43
43
|
}
|
|
44
44
|
export {};
|
package/dist/server.js
CHANGED
|
@@ -29,11 +29,10 @@ export class RpcServer {
|
|
|
29
29
|
const s = socket;
|
|
30
30
|
const [id, metadata] = await this.authSocket(socket);
|
|
31
31
|
s[kMetadata] = metadata;
|
|
32
|
-
|
|
33
|
-
if (!
|
|
34
|
-
|
|
32
|
+
let client = this.sockets.get(id);
|
|
33
|
+
if (!client) {
|
|
34
|
+
client = new RpcServerSocket(id, this);
|
|
35
35
|
this.sockets.set(id, client);
|
|
36
|
-
return client;
|
|
37
36
|
}
|
|
38
37
|
else {
|
|
39
38
|
const tid = this.disconnectingSockets.get(id);
|
|
@@ -41,9 +40,9 @@ export class RpcServer {
|
|
|
41
40
|
this.disconnectingSockets.delete(id);
|
|
42
41
|
clearTimeout(tid);
|
|
43
42
|
}
|
|
44
|
-
exist[kReplaceSocket](s);
|
|
45
|
-
return exist;
|
|
46
43
|
}
|
|
44
|
+
await client[kReplaceSocket](s);
|
|
45
|
+
return client;
|
|
47
46
|
}
|
|
48
47
|
/** 认证客户端 */
|
|
49
48
|
async authSocket(socket) {
|
|
@@ -92,11 +91,10 @@ export class RpcServer {
|
|
|
92
91
|
}
|
|
93
92
|
/** 由 WS Server 建立的 RPC 连接 */
|
|
94
93
|
export class RpcServerSocket extends RpcSocket {
|
|
95
|
-
constructor(id, server
|
|
94
|
+
constructor(id, server) {
|
|
96
95
|
super(id);
|
|
97
96
|
this.server = server;
|
|
98
97
|
this.seq = 1;
|
|
99
|
-
this.socket = socket;
|
|
100
98
|
}
|
|
101
99
|
/** @inheritdoc */
|
|
102
100
|
authSocket() {
|
|
@@ -114,6 +112,7 @@ export class RpcServerSocket extends RpcSocket {
|
|
|
114
112
|
/** 替换 socket */
|
|
115
113
|
[kReplaceSocket](newSocket) {
|
|
116
114
|
this.socket = newSocket;
|
|
115
|
+
return this.ready;
|
|
117
116
|
}
|
|
118
117
|
}
|
|
119
118
|
//# sourceMappingURL=server.js.map
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;AACpC,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;AACtC,MAAM,cAAc,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;AAKhD,8BAA8B;AAC9B,MAAM,OAAO,SAAS;IAClB,YACI,KAA6F;IAC7F,YAAY;IACH,gBAA+E,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;QAAzF,kBAAa,GAAb,aAAa,CAA4E;QAa7F,YAAO,GAAG,IAAI,GAAG,EAA4C,CAAC;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cloudpss/ubrpc",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.12",
|
|
4
4
|
"author": "CloudPSS",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"keywords": [
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"test": "cross-env NODE_OPTIONS=--experimental-vm-modules jest"
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@cloudpss/ubjson": "~0.4.
|
|
31
|
+
"@cloudpss/ubjson": "~0.4.12",
|
|
32
32
|
"@types/ws": "^8.5.4",
|
|
33
33
|
"isomorphic-ws": "^5.0.0",
|
|
34
34
|
"rxjs": "^7.8.0",
|
package/src/server.ts
CHANGED
|
@@ -39,20 +39,19 @@ export class RpcServer<TRemote extends {}, TLocal extends {}> {
|
|
|
39
39
|
const s = socket as WebSocketWithMetadata;
|
|
40
40
|
const [id, metadata] = await this.authSocket(socket);
|
|
41
41
|
s[kMetadata] = metadata;
|
|
42
|
-
|
|
43
|
-
if (!
|
|
44
|
-
|
|
42
|
+
let client = this.sockets.get(id);
|
|
43
|
+
if (!client) {
|
|
44
|
+
client = new RpcServerSocket(id, this);
|
|
45
45
|
this.sockets.set(id, client);
|
|
46
|
-
return client;
|
|
47
46
|
} else {
|
|
48
47
|
const tid = this.disconnectingSockets.get(id);
|
|
49
48
|
if (tid != null) {
|
|
50
49
|
this.disconnectingSockets.delete(id);
|
|
51
50
|
clearTimeout(tid);
|
|
52
51
|
}
|
|
53
|
-
exist[kReplaceSocket](s);
|
|
54
|
-
return exist;
|
|
55
52
|
}
|
|
53
|
+
await client[kReplaceSocket](s);
|
|
54
|
+
return client;
|
|
56
55
|
}
|
|
57
56
|
/** 认证客户端 */
|
|
58
57
|
protected async authSocket(socket: WebSocket): Promise<[ConnectionID, RpcMetadata]> {
|
|
@@ -102,10 +101,9 @@ export class RpcServer<TRemote extends {}, TLocal extends {}> {
|
|
|
102
101
|
|
|
103
102
|
/** 由 WS Server 建立的 RPC 连接 */
|
|
104
103
|
export class RpcServerSocket<TRemote extends object, TLocal extends object> extends RpcSocket<TRemote, TLocal> {
|
|
105
|
-
constructor(id: ConnectionID, readonly server: RpcServer<TRemote, TLocal
|
|
104
|
+
constructor(id: ConnectionID, readonly server: RpcServer<TRemote, TLocal>) {
|
|
106
105
|
super(id);
|
|
107
106
|
this.seq = 1;
|
|
108
|
-
this.socket = socket;
|
|
109
107
|
}
|
|
110
108
|
/** @inheritdoc */
|
|
111
109
|
protected authSocket(): Promise<RpcMetadata> {
|
|
@@ -121,7 +119,8 @@ export class RpcServerSocket<TRemote extends object, TLocal extends object> exte
|
|
|
121
119
|
this.server[kOnClose](this, ev);
|
|
122
120
|
}
|
|
123
121
|
/** 替换 socket */
|
|
124
|
-
[kReplaceSocket](newSocket: WebSocketWithMetadata): void {
|
|
122
|
+
[kReplaceSocket](newSocket: WebSocketWithMetadata): Promise<void> {
|
|
125
123
|
this.socket = newSocket;
|
|
124
|
+
return this.ready;
|
|
126
125
|
}
|
|
127
126
|
}
|