@cloudpss/ubrpc 0.4.19 → 0.4.21
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/auth.d.ts +0 -2
- package/dist/auth.js +1 -1
- package/dist/auth.js.map +1 -1
- package/dist/client.d.ts +1 -3
- package/dist/client.js +4 -2
- package/dist/client.js.map +1 -1
- package/dist/codes.d.ts +4 -0
- package/dist/codes.js +6 -0
- package/dist/codes.js.map +1 -0
- package/dist/server.d.ts +2 -4
- package/dist/server.js +2 -1
- package/dist/server.js.map +1 -1
- package/dist/socket.d.ts +4 -6
- package/dist/socket.js +2 -2
- package/dist/socket.js.map +1 -1
- package/dist/utils/messaging.d.ts +0 -2
- package/dist/utils/messaging.js.map +1 -1
- package/dist/utils/serialize.d.ts +2 -3
- package/dist/utils/serialize.js +0 -2
- package/dist/utils/serialize.js.map +1 -1
- package/package.json +4 -13
- package/src/auth.ts +4 -4
- package/src/client.ts +5 -3
- package/src/codes.ts +4 -0
- package/src/server.ts +4 -4
- package/src/socket.ts +11 -12
- package/src/utils/messaging.ts +0 -1
- package/src/utils/serialize.ts +2 -3
- package/tests/client.js +2 -0
- package/tests/server.js +1 -1
- package/dist/utils/websocket.d.ts +0 -4
- package/dist/utils/websocket.js +0 -21
- package/dist/utils/websocket.js.map +0 -1
- package/src/utils/websocket.ts +0 -22
package/dist/auth.d.ts
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
/// <reference types="ws" />
|
|
2
|
-
import type WebSocket from 'isomorphic-ws';
|
|
3
1
|
import type { ConnectionID, RpcMetadata } from './types/payload.js';
|
|
4
2
|
/** 接受认证消息 */
|
|
5
3
|
export declare function waitAuth(socket: WebSocket, seq?: number, id?: ConnectionID): Promise<[number, ConnectionID, RpcMetadata]>;
|
package/dist/auth.js
CHANGED
|
@@ -44,7 +44,7 @@ export function waitAuth(socket, seq, id) {
|
|
|
44
44
|
};
|
|
45
45
|
const finalize = () => {
|
|
46
46
|
clearTimeout(timeout);
|
|
47
|
-
socket.
|
|
47
|
+
socket.removeEventListener('message', handleMessage);
|
|
48
48
|
};
|
|
49
49
|
socket.addEventListener('message', handleMessage, { once: true });
|
|
50
50
|
});
|
package/dist/auth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,MAAM,YAAY,GAAG,IAAI,CAAC;AAE1B,aAAa;AACb,MAAM,UAAU,QAAQ,CACpB,MAAiB,EACjB,GAAY,EACZ,EAAiB;IAEjB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACnC,MAAM,UAAU,GAAG,GAAG,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,CAAC;QAC7C,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,MAAM,CAAC,IAAI,KAAK,CAAC,8BAA8B,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,OAAO,YAAY,IAAI,CAAC,CAAC,CAAC;YAC5G,QAAQ,EAAE,CAAC;QACf,CAAC,EAAE,YAAY,CAAC,CAAC;QACjB,MAAM,aAAa,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,MAAM,YAAY,GAAG,IAAI,CAAC;AAE1B,aAAa;AACb,MAAM,UAAU,QAAQ,CACpB,MAAiB,EACjB,GAAY,EACZ,EAAiB;IAEjB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACnC,MAAM,UAAU,GAAG,GAAG,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,CAAC;QAC7C,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,MAAM,CAAC,IAAI,KAAK,CAAC,8BAA8B,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,OAAO,YAAY,IAAI,CAAC,CAAC,CAAC;YAC5G,QAAQ,EAAE,CAAC;QACf,CAAC,EAAE,YAAY,CAAC,CAAC;QACjB,MAAM,aAAa,GAAG,CAAC,EAAgB,EAAQ,EAAE;YAC7C,IAAI;gBACA,MAAM,OAAO,GAAG,aAAa,CAAC,EAAE,CAAC,IAAY,CAAC,CAAC;gBAC/C,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE;oBACrC,IAAI,UAAU;wBAAE,OAAO,MAAM,CAAC,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC,CAAC;;wBACxF,OAAO,MAAM,CAAC,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC,CAAC;iBACpF;gBACD,IAAI,OAAO,CAAC,OAAO,KAAK,OAAO,EAAE;oBAC7B,OAAO,MAAM,CACT,IAAI,KAAK,CACL,uDAAuD,OAAO,SAAS,OAAO,CAAC,OAAO,EAAE,CAC3F,CACJ,CAAC;iBACL;gBACD,IAAI,UAAU,EAAE;oBACZ,IAAI,OAAO,CAAC,GAAG,KAAK,GAAG,EAAE;wBACrB,OAAO,MAAM,CAAC,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC,CAAC;qBACpF;oBACD,IAAI,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE;wBACnB,OAAO,MAAM,CAAC,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC,CAAC;qBACnF;iBACJ;gBACD,IAAI,OAAO,CAAC,KAAK,EAAE;oBACf,OAAO,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;iBAClD;gBACD,MAAM,QAAQ,GAAG,OAAO,OAAO,CAAC,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;gBACnF,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC;aAChD;YAAC,OAAO,EAAE,EAAE;gBACT,MAAM,CAAC,EAAE,CAAC,CAAC;aACd;oBAAS;gBACN,QAAQ,EAAE,CAAC;aACd;QACL,CAAC,CAAC;QACF,MAAM,QAAQ,GAAG,GAAS,EAAE;YACxB,YAAY,CAAC,OAAO,CAAC,CAAC;YACtB,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QACzD,CAAC,CAAC;QACF,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;AACP,CAAC"}
|
package/dist/client.d.ts
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
/// <reference types="ws" />
|
|
2
|
-
import WebSocket from 'isomorphic-ws';
|
|
3
1
|
import { RpcSocket } from './socket.js';
|
|
4
2
|
import type { RpcMetadata } from './types/payload.js';
|
|
5
3
|
import type { RpcObject } from './types/utils.js';
|
|
@@ -10,7 +8,7 @@ export declare class RpcClientSocket<TRemote extends {}, TLocal extends {}> exte
|
|
|
10
8
|
/** @inheritdoc */
|
|
11
9
|
protected authSocket(): Promise<RpcMetadata>;
|
|
12
10
|
/** @inheritdoc */
|
|
13
|
-
protected onClose(ev:
|
|
11
|
+
protected onClose(ev: CloseEvent): void;
|
|
14
12
|
/** 建立连接 */
|
|
15
13
|
protected connect(): void;
|
|
16
14
|
}
|
package/dist/client.js
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
import WebSocket from '
|
|
1
|
+
import { WebSocket } from '@cloudpss/ws';
|
|
2
|
+
import { WEB_SOCKET_STATUS_CODES } from '@cloudpss/ws';
|
|
2
3
|
import { v4 } from 'uuid';
|
|
3
4
|
import { waitAuth } from './auth.js';
|
|
4
5
|
import { RpcSocket } from './socket.js';
|
|
5
6
|
import { send } from './utils/messaging.js';
|
|
6
7
|
import { VERSION } from './version.js';
|
|
8
|
+
import { APP_CODE } from './codes.js';
|
|
7
9
|
/** 由 WS Client 建立的 RPC 连接 */
|
|
8
10
|
export class RpcClientSocket extends RpcSocket {
|
|
9
11
|
constructor(url, metadata, local) {
|
|
@@ -29,7 +31,7 @@ export class RpcClientSocket extends RpcSocket {
|
|
|
29
31
|
/** @inheritdoc */
|
|
30
32
|
onClose(ev) {
|
|
31
33
|
super.onClose(ev);
|
|
32
|
-
if (ev.code ===
|
|
34
|
+
if (ev.code === WEB_SOCKET_STATUS_CODES.NORMAL_CLOSURE || ev.code === APP_CODE.AUTH_ERROR)
|
|
33
35
|
return;
|
|
34
36
|
setTimeout(() => {
|
|
35
37
|
this.connect();
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAC;AAC1B,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,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,6BAA6B;AAC7B,MAAM,OAAO,eAAuD,SAAQ,SAA0B;IAClG,YAAY,GAAiB,EAAE,QAAsB,EAAE,KAAyB;QAC5E,KAAK,CAAC,EAAE,EAAkB,EAAE,KAAK,CAAC,CAAC;QACnC,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC;QAC/B,IAAI,CAAC,GAAG,GAAG,OAAO,GAAG,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;QACnD,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;QACb,IAAI,CAAC,OAAO,EAAE,CAAC;IACnB,CAAC;IAED,kBAAkB;IACC,KAAK,CAAC,UAAU;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC3B,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE;YACjB,GAAG;YACH,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,OAAO,EAAE,OAAO;YAChB,QAAQ,EAAE,IAAI,CAAC,aAAa,IAAI,EAAE;SACrC,CAAC,CAAC;QACH,MAAM,CAAC,EAAE,AAAD,EAAG,QAAQ,CAAC,GAAG,MAAM,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QAC5D,OAAO,QAAQ,CAAC;IACpB,CAAC;IACD,kBAAkB;IACC,OAAO,CAAC,EAAc;QACrC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAClB,IAAI,EAAE,CAAC,IAAI,KAAK,uBAAuB,CAAC,cAAc,IAAI,EAAE,CAAC,IAAI,KAAK,QAAQ,CAAC,UAAU;YAAE,OAAO;QAElG,UAAU,CAAC,GAAG,EAAE;YACZ,IAAI,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC,EAAE,IAAI,CAAC,CAAC;IACb,CAAC;IAED,WAAW;IACD,OAAO;QACb,IAAI,CAAC,MAAM,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE;YAClB,UAAU,CAAC,GAAG,EAAE;gBACZ,IAAI,CAAC,OAAO,EAAE,CAAC;YACnB,CAAC,EAAE,IAAI,CAAC,CAAC;QACb,CAAC,CAAC,CAAC;IACP,CAAC;CACJ"}
|
package/dist/codes.d.ts
ADDED
package/dist/codes.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codes.js","sourceRoot":"","sources":["../src/codes.ts"],"names":[],"mappings":"AAAA,qBAAqB;AACrB,MAAM,CAAN,IAAY,QAEX;AAFD,WAAY,QAAQ;IAChB,sDAAiB,CAAA;AACrB,CAAC,EAFW,QAAQ,GAAR,QAAQ,KAAR,QAAQ,QAEnB"}
|
package/dist/server.d.ts
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
/// <reference types="ws" />
|
|
2
|
-
import type WebSocket from 'isomorphic-ws';
|
|
3
1
|
import { RpcSocket } from './socket.js';
|
|
4
2
|
import type { ConnectionID, RpcMetadata } from './types/payload.js';
|
|
5
3
|
import type { RpcObject } from './types/utils.js';
|
|
@@ -26,7 +24,7 @@ export declare class RpcServer<TRemote extends {}, TLocal extends {}> {
|
|
|
26
24
|
protected authSocket(socket: WebSocket): Promise<[ConnectionID, RpcMetadata]>;
|
|
27
25
|
private readonly disconnectingSockets;
|
|
28
26
|
/** WebSocket 断开时调用 */
|
|
29
|
-
[kOnClose](socket: RpcServerSocket<TRemote, TLocal>, ev:
|
|
27
|
+
[kOnClose](socket: RpcServerSocket<TRemote, TLocal>, ev: CloseEvent): void;
|
|
30
28
|
}
|
|
31
29
|
/** 由 WS Server 建立的 RPC 连接 */
|
|
32
30
|
export declare class RpcServerSocket<TRemote extends object, TLocal extends object> extends RpcSocket<TRemote, TLocal> {
|
|
@@ -37,7 +35,7 @@ export declare class RpcServerSocket<TRemote extends object, TLocal extends obje
|
|
|
37
35
|
/** @inheritdoc */
|
|
38
36
|
protected get local(): RpcObject<TLocal> | undefined;
|
|
39
37
|
/** @inheritdoc */
|
|
40
|
-
protected onClose(ev:
|
|
38
|
+
protected onClose(ev: CloseEvent): void;
|
|
41
39
|
/** 替换 socket */
|
|
42
40
|
[kReplaceSocket](newSocket: WebSocketWithMetadata): Promise<void>;
|
|
43
41
|
}
|
package/dist/server.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { waitAuth } from './auth.js';
|
|
2
|
+
import { APP_CODE } from './codes.js';
|
|
2
3
|
import { RpcSocket } from './socket.js';
|
|
3
4
|
import { send } from './utils/messaging.js';
|
|
4
5
|
import { serializeError } from './utils/serialize.js';
|
|
@@ -74,7 +75,7 @@ export class RpcServer {
|
|
|
74
75
|
error: serializeError(ex),
|
|
75
76
|
});
|
|
76
77
|
}
|
|
77
|
-
socket.close(
|
|
78
|
+
socket.close(APP_CODE.AUTH_ERROR);
|
|
78
79
|
throw ex;
|
|
79
80
|
}
|
|
80
81
|
}
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
package/dist/socket.d.ts
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
/// <reference types="ws" />
|
|
2
|
-
import type WebSocket from 'isomorphic-ws';
|
|
3
1
|
import { Observable } from 'rxjs';
|
|
4
2
|
import type { ConnectionID, RpcCallPayload, RpcMetadata, RpcNotifyPayload, RpcPayload, RpcSubscribePayload } from './types/payload.js';
|
|
5
3
|
import type { Methods, Notifications, RpcObject, RpcParameters, RpcReturns, Subjects } from './types/utils.js';
|
|
@@ -32,13 +30,13 @@ export declare abstract class RpcSocket<TRemote extends {}, TLocal extends {}> {
|
|
|
32
30
|
/** 认证 WebSocket */
|
|
33
31
|
protected abstract authSocket(): Promise<RpcMetadata>;
|
|
34
32
|
/** 响应 WebSocket error */
|
|
35
|
-
protected onError(_ev:
|
|
33
|
+
protected onError(_ev: ErrorEvent | Event): void;
|
|
36
34
|
/** 响应 WebSocket open */
|
|
37
|
-
protected onOpen(_ev:
|
|
35
|
+
protected onOpen(_ev: Event): void;
|
|
38
36
|
/** 响应 WebSocket close */
|
|
39
|
-
protected onClose(ev:
|
|
37
|
+
protected onClose(ev: CloseEvent): void;
|
|
40
38
|
/** 响应 WebSocket message */
|
|
41
|
-
protected onMessage(ev:
|
|
39
|
+
protected onMessage(ev: MessageEvent): void;
|
|
42
40
|
/** 响应 Rpc 消息 */
|
|
43
41
|
protected onPayload(payload: RpcPayload): boolean;
|
|
44
42
|
/** 调用本地方法 */
|
package/dist/socket.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
import { connected } from '@cloudpss/ws';
|
|
1
2
|
import { from, Observable, Subscriber, Subscription } from 'rxjs';
|
|
2
3
|
import { send } from './utils/messaging.js';
|
|
3
4
|
import { decodePayload, deserializeError, serializeError } from './utils/serialize.js';
|
|
4
|
-
import { ready } from './utils/websocket.js';
|
|
5
5
|
/** RPC 连接 */
|
|
6
6
|
export class RpcSocket {
|
|
7
7
|
constructor(id, local) {
|
|
@@ -77,7 +77,7 @@ export class RpcSocket {
|
|
|
77
77
|
oldValue.removeEventListener('error', this.__handlers.error);
|
|
78
78
|
oldValue.removeEventListener('message', this.__handlers.message);
|
|
79
79
|
}
|
|
80
|
-
await
|
|
80
|
+
await connected(newValue);
|
|
81
81
|
const info = await this.authSocket();
|
|
82
82
|
if (this.__socket === newValue) {
|
|
83
83
|
newValue.addEventListener('open', this.__handlers.open);
|
package/dist/socket.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"socket.js","sourceRoot":"","sources":["../src/socket.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"socket.js","sourceRoot":"","sources":["../src/socket.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messaging.js","sourceRoot":"","sources":["../../src/utils/messaging.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"messaging.js","sourceRoot":"","sources":["../../src/utils/messaging.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAG1C,WAAW;AACX,MAAM,UAAU,IAAI,CAChB,MAAiB,EACjB,IAAO,EACP,IAA4C;IAE5C,MAAM,CAAC,IAAI,CACP,MAAM,CAAC;QACH,GAAG,IAAI;QACP,IAAI;KACP,CAAC,CACL,CAAC;AACN,CAAC"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
import type WebSocket from 'isomorphic-ws';
|
|
1
|
+
import type { Data } from '@cloudpss/ws';
|
|
3
2
|
import type { RpcErrorLike, RpcPayload } from '../types/payload.js';
|
|
4
3
|
/** 反序列化 */
|
|
5
|
-
export declare function decodePayload(data:
|
|
4
|
+
export declare function decodePayload(data: Data): RpcPayload | undefined;
|
|
6
5
|
/** 序列化错误信息 */
|
|
7
6
|
export declare function serializeError(error: unknown): RpcErrorLike;
|
|
8
7
|
/** 反序列化错误信息 */
|
package/dist/utils/serialize.js
CHANGED
|
@@ -3,8 +3,6 @@ import { decode } from '@cloudpss/ubjson';
|
|
|
3
3
|
export function decodePayload(data) {
|
|
4
4
|
if (!data || typeof data == 'string')
|
|
5
5
|
return undefined;
|
|
6
|
-
if (Array.isArray(data))
|
|
7
|
-
data = Buffer.concat(data);
|
|
8
6
|
try {
|
|
9
7
|
const payload = decode(data);
|
|
10
8
|
if (!payload || typeof payload != 'object')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serialize.js","sourceRoot":"","sources":["../../src/utils/serialize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAI1C,WAAW;AACX,MAAM,UAAU,aAAa,CAAC,
|
|
1
|
+
{"version":3,"file":"serialize.js","sourceRoot":"","sources":["../../src/utils/serialize.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.21",
|
|
4
4
|
"author": "CloudPSS",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"keywords": [
|
|
@@ -16,9 +16,6 @@
|
|
|
16
16
|
"types": "./dist/index.d.ts",
|
|
17
17
|
"default": "./dist/index.js"
|
|
18
18
|
},
|
|
19
|
-
"engines": {
|
|
20
|
-
"node": ">=14.0.0"
|
|
21
|
-
},
|
|
22
19
|
"scripts": {
|
|
23
20
|
"start": "yarn clean && tsc --watch",
|
|
24
21
|
"build": "yarn clean && tsc",
|
|
@@ -28,16 +25,10 @@
|
|
|
28
25
|
"test": "cross-env NODE_OPTIONS=\"$NODE_OPTIONS --experimental-vm-modules\" jest"
|
|
29
26
|
},
|
|
30
27
|
"dependencies": {
|
|
31
|
-
"@cloudpss/ubjson": "~0.4.
|
|
32
|
-
"@
|
|
33
|
-
"isomorphic-ws": "^5.0.0",
|
|
28
|
+
"@cloudpss/ubjson": "~0.4.21",
|
|
29
|
+
"@cloudpss/ws": "~0.4.21",
|
|
34
30
|
"rxjs": "^7.8.1",
|
|
35
|
-
"uuid": "^9.0.0"
|
|
36
|
-
"ws": "^8.13.0"
|
|
37
|
-
},
|
|
38
|
-
"optionalDependencies": {
|
|
39
|
-
"bufferutil": "^4.0.7",
|
|
40
|
-
"utf-8-validate": "^6.0.3"
|
|
31
|
+
"uuid": "^9.0.0"
|
|
41
32
|
},
|
|
42
33
|
"devDependencies": {
|
|
43
34
|
"@types/uuid": "^9.0.1"
|
package/src/auth.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type WebSocket from '
|
|
1
|
+
import type { WebSocket, Data } from '@cloudpss/ws';
|
|
2
2
|
import type { ConnectionID, RpcMetadata } from './types/payload.js';
|
|
3
3
|
import { decodePayload, deserializeError } from './utils/serialize.js';
|
|
4
4
|
import { VERSION } from './version.js';
|
|
@@ -17,9 +17,9 @@ export function waitAuth(
|
|
|
17
17
|
reject(new Error(`Failed to authenticate, no ${isResponse ? 'response' : 'request'} in ${AUTH_TIMEOUT}ms`));
|
|
18
18
|
finalize();
|
|
19
19
|
}, AUTH_TIMEOUT);
|
|
20
|
-
const handleMessage = (ev:
|
|
20
|
+
const handleMessage = (ev: MessageEvent): void => {
|
|
21
21
|
try {
|
|
22
|
-
const payload = decodePayload(ev.data);
|
|
22
|
+
const payload = decodePayload(ev.data as Data);
|
|
23
23
|
if (!payload || payload.type !== 'auth') {
|
|
24
24
|
if (isResponse) return reject(new Error(`Failed to authenticate, bad response from server`));
|
|
25
25
|
else return reject(new Error(`Failed to authenticate, bad request from client`));
|
|
@@ -52,7 +52,7 @@ export function waitAuth(
|
|
|
52
52
|
};
|
|
53
53
|
const finalize = (): void => {
|
|
54
54
|
clearTimeout(timeout);
|
|
55
|
-
socket.
|
|
55
|
+
socket.removeEventListener('message', handleMessage);
|
|
56
56
|
};
|
|
57
57
|
socket.addEventListener('message', handleMessage, { once: true });
|
|
58
58
|
});
|
package/src/client.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import WebSocket from '
|
|
1
|
+
import { WebSocket } from '@cloudpss/ws';
|
|
2
|
+
import { WEB_SOCKET_STATUS_CODES } from '@cloudpss/ws';
|
|
2
3
|
import { v4 } from 'uuid';
|
|
3
4
|
import { waitAuth } from './auth.js';
|
|
4
5
|
import { RpcSocket } from './socket.js';
|
|
@@ -6,6 +7,7 @@ import type { ConnectionID, RpcMetadata } from './types/payload.js';
|
|
|
6
7
|
import type { RpcObject } from './types/utils.js';
|
|
7
8
|
import { send } from './utils/messaging.js';
|
|
8
9
|
import { VERSION } from './version.js';
|
|
10
|
+
import { APP_CODE } from './codes.js';
|
|
9
11
|
|
|
10
12
|
/** 由 WS Client 建立的 RPC 连接 */
|
|
11
13
|
export class RpcClientSocket<TRemote extends {}, TLocal extends {}> extends RpcSocket<TRemote, TLocal> {
|
|
@@ -31,9 +33,9 @@ export class RpcClientSocket<TRemote extends {}, TLocal extends {}> extends RpcS
|
|
|
31
33
|
return metadata;
|
|
32
34
|
}
|
|
33
35
|
/** @inheritdoc */
|
|
34
|
-
protected override onClose(ev:
|
|
36
|
+
protected override onClose(ev: CloseEvent): void {
|
|
35
37
|
super.onClose(ev);
|
|
36
|
-
if (ev.code ===
|
|
38
|
+
if (ev.code === WEB_SOCKET_STATUS_CODES.NORMAL_CLOSURE || ev.code === APP_CODE.AUTH_ERROR) return;
|
|
37
39
|
|
|
38
40
|
setTimeout(() => {
|
|
39
41
|
this.connect();
|
package/src/codes.ts
ADDED
package/src/server.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type WebSocket from 'isomorphic-ws';
|
|
2
1
|
import { waitAuth } from './auth.js';
|
|
2
|
+
import { APP_CODE } from './codes.js';
|
|
3
3
|
import { RpcSocket } from './socket.js';
|
|
4
4
|
import type { ConnectionID, RpcMetadata } from './types/payload.js';
|
|
5
5
|
import type { RpcObject } from './types/utils.js';
|
|
@@ -81,14 +81,14 @@ export class RpcServer<TRemote extends {}, TLocal extends {}> {
|
|
|
81
81
|
error: serializeError(ex),
|
|
82
82
|
});
|
|
83
83
|
}
|
|
84
|
-
socket.close(
|
|
84
|
+
socket.close(APP_CODE.AUTH_ERROR);
|
|
85
85
|
throw ex;
|
|
86
86
|
}
|
|
87
87
|
}
|
|
88
88
|
|
|
89
89
|
private readonly disconnectingSockets = new Map<string, ReturnType<typeof setTimeout>>();
|
|
90
90
|
/** WebSocket 断开时调用 */
|
|
91
|
-
[kOnClose](socket: RpcServerSocket<TRemote, TLocal>, ev:
|
|
91
|
+
[kOnClose](socket: RpcServerSocket<TRemote, TLocal>, ev: CloseEvent): void {
|
|
92
92
|
const delay = ev.code === 1000 ? 0 : 5000;
|
|
93
93
|
const tid = setTimeout(() => {
|
|
94
94
|
socket.destroy();
|
|
@@ -114,7 +114,7 @@ export class RpcServerSocket<TRemote extends object, TLocal extends object> exte
|
|
|
114
114
|
return this.server.local?.(this);
|
|
115
115
|
}
|
|
116
116
|
/** @inheritdoc */
|
|
117
|
-
protected override onClose(ev:
|
|
117
|
+
protected override onClose(ev: CloseEvent): void {
|
|
118
118
|
super.onClose(ev);
|
|
119
119
|
this.server[kOnClose](this, ev);
|
|
120
120
|
}
|
package/src/socket.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { connected, type Data } from '@cloudpss/ws';
|
|
2
2
|
import { from, Observable, Subscriber, Subscription } from 'rxjs';
|
|
3
3
|
import type {
|
|
4
4
|
ConnectionID,
|
|
@@ -19,7 +19,6 @@ import type {
|
|
|
19
19
|
} from './types/utils.js';
|
|
20
20
|
import { send } from './utils/messaging.js';
|
|
21
21
|
import { decodePayload, deserializeError, serializeError } from './utils/serialize.js';
|
|
22
|
-
import { ready } from './utils/websocket.js';
|
|
23
22
|
|
|
24
23
|
/** RPC 连接 */
|
|
25
24
|
export abstract class RpcSocket<TRemote extends {}, TLocal extends {}> {
|
|
@@ -77,10 +76,10 @@ export abstract class RpcSocket<TRemote extends {}, TLocal extends {}> {
|
|
|
77
76
|
private __readyCallbacks?: Parameters<ConstructorParameters<typeof Promise<void>>[0]>;
|
|
78
77
|
protected ready!: Promise<void>;
|
|
79
78
|
private readonly __handlers = Object.freeze({
|
|
80
|
-
open: (ev:
|
|
81
|
-
close: (ev:
|
|
82
|
-
error: (ev:
|
|
83
|
-
message: (ev:
|
|
79
|
+
open: (ev: Event) => this.onOpen(ev),
|
|
80
|
+
close: (ev: CloseEvent) => this.onClose(ev),
|
|
81
|
+
error: (ev: Event | ErrorEvent) => this.onError(ev),
|
|
82
|
+
message: (ev: MessageEvent) => this.onMessage(ev),
|
|
84
83
|
} as const);
|
|
85
84
|
/** 初始化 WebSocket */
|
|
86
85
|
protected async initSocket(oldValue: WebSocket | undefined, newValue: WebSocket): Promise<void> {
|
|
@@ -91,7 +90,7 @@ export abstract class RpcSocket<TRemote extends {}, TLocal extends {}> {
|
|
|
91
90
|
oldValue.removeEventListener('error', this.__handlers.error);
|
|
92
91
|
oldValue.removeEventListener('message', this.__handlers.message);
|
|
93
92
|
}
|
|
94
|
-
await
|
|
93
|
+
await connected(newValue);
|
|
95
94
|
const info = await this.authSocket();
|
|
96
95
|
if (this.__socket === newValue) {
|
|
97
96
|
newValue.addEventListener('open', this.__handlers.open);
|
|
@@ -108,16 +107,16 @@ export abstract class RpcSocket<TRemote extends {}, TLocal extends {}> {
|
|
|
108
107
|
/** 认证 WebSocket */
|
|
109
108
|
protected abstract authSocket(): Promise<RpcMetadata>;
|
|
110
109
|
/** 响应 WebSocket error */
|
|
111
|
-
protected onError(_ev:
|
|
110
|
+
protected onError(_ev: ErrorEvent | Event): void {
|
|
112
111
|
this._remoteMetadata = undefined;
|
|
113
112
|
this.makeReady();
|
|
114
113
|
}
|
|
115
114
|
/** 响应 WebSocket open */
|
|
116
|
-
protected onOpen(_ev:
|
|
115
|
+
protected onOpen(_ev: Event): void {
|
|
117
116
|
//
|
|
118
117
|
}
|
|
119
118
|
/** 响应 WebSocket close */
|
|
120
|
-
protected onClose(ev:
|
|
119
|
+
protected onClose(ev: CloseEvent): void {
|
|
121
120
|
this._remoteMetadata = undefined;
|
|
122
121
|
if (ev.code === 1000) {
|
|
123
122
|
this.destroy();
|
|
@@ -126,8 +125,8 @@ export abstract class RpcSocket<TRemote extends {}, TLocal extends {}> {
|
|
|
126
125
|
}
|
|
127
126
|
}
|
|
128
127
|
/** 响应 WebSocket message */
|
|
129
|
-
protected onMessage(ev:
|
|
130
|
-
const payload = decodePayload(ev.data);
|
|
128
|
+
protected onMessage(ev: MessageEvent): void {
|
|
129
|
+
const payload = decodePayload(ev.data as Data);
|
|
131
130
|
let error;
|
|
132
131
|
if (payload) {
|
|
133
132
|
const handled = this.onPayload(payload);
|
package/src/utils/messaging.ts
CHANGED
package/src/utils/serialize.ts
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { decode } from '@cloudpss/ubjson';
|
|
2
|
-
import type
|
|
2
|
+
import type { Data } from '@cloudpss/ws';
|
|
3
3
|
import type { RpcErrorLike, RpcPayload } from '../types/payload.js';
|
|
4
4
|
|
|
5
5
|
/** 反序列化 */
|
|
6
|
-
export function decodePayload(data:
|
|
6
|
+
export function decodePayload(data: Data): RpcPayload | undefined {
|
|
7
7
|
if (!data || typeof data == 'string') return undefined;
|
|
8
|
-
if (Array.isArray(data)) data = Buffer.concat(data);
|
|
9
8
|
try {
|
|
10
9
|
const payload = decode(data) as RpcPayload;
|
|
11
10
|
if (!payload || typeof payload != 'object') return undefined;
|
package/tests/client.js
CHANGED
package/tests/server.js
CHANGED
package/dist/utils/websocket.js
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
/** 等待连接建立 */
|
|
2
|
-
export function ready(socket) {
|
|
3
|
-
switch (socket.readyState) {
|
|
4
|
-
case socket.CONNECTING:
|
|
5
|
-
return new Promise((resolve, reject) => {
|
|
6
|
-
socket.addEventListener('open', () => resolve(), { once: true });
|
|
7
|
-
socket.addEventListener('error', (ev) => reject(ev.error ?? new Error(`Failed to connect`)), {
|
|
8
|
-
once: true,
|
|
9
|
-
});
|
|
10
|
-
});
|
|
11
|
-
case socket.OPEN:
|
|
12
|
-
return Promise.resolve();
|
|
13
|
-
case socket.CLOSING:
|
|
14
|
-
return Promise.reject(new Error(`Socket is closing.`));
|
|
15
|
-
case socket.CLOSED:
|
|
16
|
-
return Promise.reject(new Error(`Socket is closed.`));
|
|
17
|
-
default:
|
|
18
|
-
return Promise.reject(new Error(`Socket is in unknown state.`));
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
//# sourceMappingURL=websocket.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../src/utils/websocket.ts"],"names":[],"mappings":"AAEA,aAAa;AACb,MAAM,UAAU,KAAK,CAAC,MAAiB;IACnC,QAAQ,MAAM,CAAC,UAAU,EAAE;QACvB,KAAK,MAAM,CAAC,UAAU;YAClB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACnC,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;gBACjE,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,EAAE;oBACzF,IAAI,EAAE,IAAI;iBACb,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,KAAK,MAAM,CAAC,IAAI;YACZ,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAC7B,KAAK,MAAM,CAAC,OAAO;YACf,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAC3D,KAAK,MAAM,CAAC,MAAM;YACd,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAC1D;YACI,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAC;KACvE;AACL,CAAC"}
|
package/src/utils/websocket.ts
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import type WebSocket from 'isomorphic-ws';
|
|
2
|
-
|
|
3
|
-
/** 等待连接建立 */
|
|
4
|
-
export function ready(socket: WebSocket): Promise<void> {
|
|
5
|
-
switch (socket.readyState) {
|
|
6
|
-
case socket.CONNECTING:
|
|
7
|
-
return new Promise((resolve, reject) => {
|
|
8
|
-
socket.addEventListener('open', () => resolve(), { once: true });
|
|
9
|
-
socket.addEventListener('error', (ev) => reject(ev.error ?? new Error(`Failed to connect`)), {
|
|
10
|
-
once: true,
|
|
11
|
-
});
|
|
12
|
-
});
|
|
13
|
-
case socket.OPEN:
|
|
14
|
-
return Promise.resolve();
|
|
15
|
-
case socket.CLOSING:
|
|
16
|
-
return Promise.reject(new Error(`Socket is closing.`));
|
|
17
|
-
case socket.CLOSED:
|
|
18
|
-
return Promise.reject(new Error(`Socket is closed.`));
|
|
19
|
-
default:
|
|
20
|
-
return Promise.reject(new Error(`Socket is in unknown state.`));
|
|
21
|
-
}
|
|
22
|
-
}
|