@cloudpss/ubrpc 0.4.18 → 0.4.20

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 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.removeListener('message', handleMessage);
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,CAAC,MAAiB,EAAE,GAAY,EAAE,EAAiB;IACvE,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,EAA0B,EAAQ,EAAE;YACvD,IAAI;gBACA,MAAM,OAAO,GAAG,aAAa,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;gBACvC,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,CAAC,IAAI,KAAK,CAAC,uDAAuD,OAAO,SAAS,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;iBACtH;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,cAAc,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QACpD,CAAC,CAAC;QACF,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;AACP,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: WebSocket.CloseEvent): void;
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 'isomorphic-ws';
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 === 1000)
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();
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,eAAe,CAAC;AACtC,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;AAEvC,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,EAAwB;QAC/C,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAClB,IAAI,EAAE,CAAC,IAAI,KAAK,IAAI;YAAE,OAAO;QAE7B,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"}
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"}
@@ -0,0 +1,4 @@
1
+ /** WebSocket 关闭代码 */
2
+ export declare enum APP_CODE {
3
+ AUTH_ERROR = 3401
4
+ }
package/dist/codes.js ADDED
@@ -0,0 +1,6 @@
1
+ /** WebSocket 关闭代码 */
2
+ export var APP_CODE;
3
+ (function (APP_CODE) {
4
+ APP_CODE[APP_CODE["AUTH_ERROR"] = 3401] = "AUTH_ERROR";
5
+ })(APP_CODE = APP_CODE || (APP_CODE = {}));
6
+ //# sourceMappingURL=codes.js.map
@@ -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: WebSocket.CloseEvent): void;
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: WebSocket.CloseEvent): void;
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(3401, 'Auth error');
78
+ socket.close(APP_CODE.AUTH_ERROR);
78
79
  throw ex;
79
80
  }
80
81
  }
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
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: WebSocket.ErrorEvent): void;
33
+ protected onError(_ev: ErrorEvent | Event): void;
36
34
  /** 响应 WebSocket open */
37
- protected onOpen(_ev: WebSocket.Event): void;
35
+ protected onOpen(_ev: Event): void;
38
36
  /** 响应 WebSocket close */
39
- protected onClose(ev: WebSocket.CloseEvent): void;
37
+ protected onClose(ev: CloseEvent): void;
40
38
  /** 响应 WebSocket message */
41
- protected onMessage(ev: WebSocket.MessageEvent): void;
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 ready(newValue);
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);
@@ -281,7 +281,8 @@ export class RpcSocket {
281
281
  }
282
282
  /** 结束 */
283
283
  destroy() {
284
- if (this.__socket && (this.__socket.readyState === this.__socket.CONNECTING || this.__socket.readyState === this.__socket.OPEN)) {
284
+ if (this.__socket &&
285
+ (this.__socket.readyState === this.__socket.CONNECTING || this.__socket.readyState === this.__socket.OPEN)) {
285
286
  this.__socket.close(1000);
286
287
  this.__socket = undefined;
287
288
  }
@@ -1 +1 @@
1
- {"version":3,"file":"socket.js","sourceRoot":"","sources":["../src/socket.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"socket.js","sourceRoot":"","sources":["../src/socket.ts"],"names":[],"mappings":"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"}
@@ -13,7 +13,7 @@ export type Methods<T> = {
13
13
  }[keyof T] & string;
14
14
  /** 提取类型中的通知 */
15
15
  export type Notifications<T> = {
16
- [P in keyof T]: T[P] extends (...args: any[]) => infer R ? (IsNotificationReturn<R> extends true ? P : never) : never;
16
+ [P in keyof T]: T[P] extends (...args: any[]) => infer R ? IsNotificationReturn<R> extends true ? P : never : never;
17
17
  }[keyof T] & string;
18
18
  /** 提取类型中的订阅主题 */
19
19
  export type Subjects<T> = {
@@ -22,7 +22,7 @@ export type Subjects<T> = {
22
22
  /** RPC 调用的参数 */
23
23
  export type RpcParameters<T> = T extends (...args: infer R) => any ? R : never;
24
24
  /** RPC 调用的返回 */
25
- export type RpcReturns<T> = T extends (...args: any[]) => infer R ? (Awaited<R> extends ObservableLike<infer U> ? U : Awaited<R>) : never;
25
+ export type RpcReturns<T> = T extends (...args: any[]) => infer R ? Awaited<R> extends ObservableLike<infer U> ? U : Awaited<R> : never;
26
26
  /** RPC 调用函数的实现 */
27
27
  type RpcField<T> = T extends (...args: infer P) => infer R ? Awaited<R> extends ObservableReturn ? (...args: P) => ObservableLike<RpcReturns<T>> | PromiseLike<ObservableLike<RpcReturns<T>>> : (...args: P) => RpcReturns<T> | PromiseLike<RpcReturns<T>> : never;
28
28
  /** RPC 调用对象的实现 */
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/types/utils.ts"],"names":[],"mappings":";AAsDA,gBAAgB;AAChB,qBAAqB;AACrB,8CAA8C;AAC9C,0DAA0D;AAC1D,gDAAgD;AAChD,gEAAgE;AAChE,+CAA+C;AAC/C,mDAAmD;AACnD,6BAA6B;AAC7B,mEAAmE;AACnE,0DAA0D;AAC1D,+CAA+C;AAC/C,4DAA4D;AAC5D,8DAA8D;AAC9D,8CAA8C;AAC9C,2DAA2D;AAC3D,IAAI;AAEJ,uBAAuB;AACvB,wBAAwB;AACxB,6BAA6B"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/types/utils.ts"],"names":[],"mappings":";AA8DA,gBAAgB;AAChB,qBAAqB;AACrB,8CAA8C;AAC9C,0DAA0D;AAC1D,gDAAgD;AAChD,gEAAgE;AAChE,+CAA+C;AAC/C,mDAAmD;AACnD,6BAA6B;AAC7B,mEAAmE;AACnE,0DAA0D;AAC1D,+CAA+C;AAC/C,4DAA4D;AAC5D,8DAA8D;AAC9D,8CAA8C;AAC9C,2DAA2D;AAC3D,IAAI;AAEJ,uBAAuB;AACvB,wBAAwB;AACxB,6BAA6B"}
@@ -1,5 +1,3 @@
1
- /// <reference types="ws" />
2
- import type WebSocket from 'isomorphic-ws';
3
1
  import type { RpcPayload } from '../types/payload.js';
4
2
  /** 发送消息 */
5
3
  export declare function send<T extends RpcPayload['type']>(socket: WebSocket, type: T, info: Omit<RpcPayload & {
@@ -1 +1 @@
1
- {"version":3,"file":"messaging.js","sourceRoot":"","sources":["../../src/utils/messaging.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAG1C,WAAW;AACX,MAAM,UAAU,IAAI,CAA+B,MAAiB,EAAE,IAAO,EAAE,IAA4C;IACvH,MAAM,CAAC,IAAI,CACP,MAAM,CAAC;QACH,GAAG,IAAI;QACP,IAAI;KACP,CAAC,CACL,CAAC;AACN,CAAC"}
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
- /// <reference types="ws" />
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: WebSocket.Data): RpcPayload | undefined;
4
+ export declare function decodePayload(data: Data): RpcPayload | undefined;
6
5
  /** 序列化错误信息 */
7
6
  export declare function serializeError(error: unknown): RpcErrorLike;
8
7
  /** 反序列化错误信息 */
@@ -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,IAAoB;IAC9C,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,IAAI,QAAQ;QAAE,OAAO,SAAS,CAAC;IACvD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACpD,IAAI;QACA,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAe,CAAC;QAC3C,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,IAAI,QAAQ;YAAE,OAAO,SAAS,CAAC;QAC7D,IAAI,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,SAAS,CAAC;QACvD,IAAI,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ;YAAE,OAAO,SAAS,CAAC;QACtD,OAAO,OAAO,CAAC;KAClB;IAAC,OAAO,EAAE,EAAE;QACT,OAAO,SAAS,CAAC;KACpB;AACL,CAAC;AAED,MAAM,WAAW,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC;AAChD,cAAc;AACd,MAAM,UAAU,cAAc,CAAC,KAAc;IACzC,IAAI,KAAK,IAAI,IAAI;QACb,OAAO;YACH,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,EAAE;SACd,CAAC;IACN,IAAI,OAAO,KAAK,IAAI,QAAQ;QACxB,OAAO;YACH,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC;SACzB,CAAC;IACN,IAAI;QACA,MAAM,OAAO,GAAG,CAAC,CAAE,KAAkC,CAAC,WAAW,CAAC,CAAC;QAClE,KAAkC,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;QACxD,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,KAAuB,CAAC;QAC1E,OAAO;YACH,GAAG,IAAI;YACP,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,OAAO,CAAC;YAC7B,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;YAC9B,KAAK,EAAE,KAAK;YACZ,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM;SACtG,CAAC;KACL;YAAS;QACN,OAAQ,KAAkC,CAAC,WAAW,CAAC,CAAC;KAC3D;AACL,CAAC;AACD,eAAe;AACf,MAAM,UAAU,gBAAgB,CAAC,KAAmB;IAChD,IAAI,KAAK,IAAI,IAAI,IAAI,OAAO,KAAK,IAAI,QAAQ;QAAE,OAAO,IAAI,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IAC7E,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC;IACxD,IAAI,EAAE,CAAC;IACP,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;QACvB,EAAE,GAAG,IAAI,cAAc,CACnB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,EACtC,OAAO,CACV,CAAC;KACL;SAAM;QACH,EAAE,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;KAC3B;IACD,IAAI,IAAI,KAAK,EAAE,EAAE,IAAI;QAAE,MAAM,CAAC,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IACtH,MAAM,CAAC,cAAc,CAAC,EAAE,EAAE,OAAO,EAAE;QAC/B,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;QACxC,YAAY,EAAE,IAAI;QAClB,QAAQ,EAAE,IAAI;KACjB,CAAC,CAAC;IACH,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IACxB,OAAO,EAAE,CAAC;AACd,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.18",
3
+ "version": "0.4.20",
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.18",
32
- "@types/ws": "^8.5.4",
33
- "isomorphic-ws": "^5.0.0",
28
+ "@cloudpss/ubjson": "~0.4.20",
29
+ "@cloudpss/ws": "~0.4.20",
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 'isomorphic-ws';
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';
@@ -6,22 +6,30 @@ import { VERSION } from './version.js';
6
6
  const AUTH_TIMEOUT = 5000;
7
7
 
8
8
  /** 接受认证消息 */
9
- export function waitAuth(socket: WebSocket, seq?: number, id?: ConnectionID): Promise<[number, ConnectionID, RpcMetadata]> {
9
+ export function waitAuth(
10
+ socket: WebSocket,
11
+ seq?: number,
12
+ id?: ConnectionID,
13
+ ): Promise<[number, ConnectionID, RpcMetadata]> {
10
14
  return new Promise((resolve, reject) => {
11
15
  const isResponse = seq != null && id != null;
12
16
  const timeout = setTimeout(() => {
13
17
  reject(new Error(`Failed to authenticate, no ${isResponse ? 'response' : 'request'} in ${AUTH_TIMEOUT}ms`));
14
18
  finalize();
15
19
  }, AUTH_TIMEOUT);
16
- const handleMessage = (ev: WebSocket.MessageEvent): void => {
20
+ const handleMessage = (ev: MessageEvent): void => {
17
21
  try {
18
- const payload = decodePayload(ev.data);
22
+ const payload = decodePayload(ev.data as Data);
19
23
  if (!payload || payload.type !== 'auth') {
20
24
  if (isResponse) return reject(new Error(`Failed to authenticate, bad response from server`));
21
25
  else return reject(new Error(`Failed to authenticate, bad request from client`));
22
26
  }
23
27
  if (payload.version !== VERSION) {
24
- return reject(new Error(`Failed to authenticate, version not match, expected ${VERSION}, got ${payload.version}`));
28
+ return reject(
29
+ new Error(
30
+ `Failed to authenticate, version not match, expected ${VERSION}, got ${payload.version}`,
31
+ ),
32
+ );
25
33
  }
26
34
  if (isResponse) {
27
35
  if (payload.seq !== seq) {
@@ -44,7 +52,7 @@ export function waitAuth(socket: WebSocket, seq?: number, id?: ConnectionID): Pr
44
52
  };
45
53
  const finalize = (): void => {
46
54
  clearTimeout(timeout);
47
- socket.removeListener('message', handleMessage);
55
+ socket.removeEventListener('message', handleMessage);
48
56
  };
49
57
  socket.addEventListener('message', handleMessage, { once: true });
50
58
  });
package/src/client.ts CHANGED
@@ -1,4 +1,5 @@
1
- import WebSocket from 'isomorphic-ws';
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: WebSocket.CloseEvent): void {
36
+ protected override onClose(ev: CloseEvent): void {
35
37
  super.onClose(ev);
36
- if (ev.code === 1000) return;
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
@@ -0,0 +1,4 @@
1
+ /** WebSocket 关闭代码 */
2
+ export enum APP_CODE {
3
+ AUTH_ERROR = 3401,
4
+ }
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(3401, 'Auth error');
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: WebSocket.CloseEvent): void {
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: WebSocket.CloseEvent): void {
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,10 +1,24 @@
1
- import type WebSocket from 'isomorphic-ws';
1
+ import { connected, type Data } from '@cloudpss/ws';
2
2
  import { from, Observable, Subscriber, Subscription } from 'rxjs';
3
- import type { ConnectionID, RpcCallPayload, RpcMetadata, RpcNotifyPayload, RpcPayload, RpcSubscribePayload } from './types/payload.js';
4
- import type { Methods, Notifications, ObservableLike, RpcObject, RpcParameters, RpcReturns, Subjects } from './types/utils.js';
3
+ import type {
4
+ ConnectionID,
5
+ RpcCallPayload,
6
+ RpcMetadata,
7
+ RpcNotifyPayload,
8
+ RpcPayload,
9
+ RpcSubscribePayload,
10
+ } from './types/payload.js';
11
+ import type {
12
+ Methods,
13
+ Notifications,
14
+ ObservableLike,
15
+ RpcObject,
16
+ RpcParameters,
17
+ RpcReturns,
18
+ Subjects,
19
+ } from './types/utils.js';
5
20
  import { send } from './utils/messaging.js';
6
21
  import { decodePayload, deserializeError, serializeError } from './utils/serialize.js';
7
- import { ready } from './utils/websocket.js';
8
22
 
9
23
  /** RPC 连接 */
10
24
  export abstract class RpcSocket<TRemote extends {}, TLocal extends {}> {
@@ -62,10 +76,10 @@ export abstract class RpcSocket<TRemote extends {}, TLocal extends {}> {
62
76
  private __readyCallbacks?: Parameters<ConstructorParameters<typeof Promise<void>>[0]>;
63
77
  protected ready!: Promise<void>;
64
78
  private readonly __handlers = Object.freeze({
65
- open: (ev: WebSocket.Event) => this.onOpen(ev),
66
- close: (ev: WebSocket.CloseEvent) => this.onClose(ev),
67
- error: (ev: WebSocket.ErrorEvent) => this.onError(ev),
68
- message: (ev: WebSocket.MessageEvent) => this.onMessage(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),
69
83
  } as const);
70
84
  /** 初始化 WebSocket */
71
85
  protected async initSocket(oldValue: WebSocket | undefined, newValue: WebSocket): Promise<void> {
@@ -76,7 +90,7 @@ export abstract class RpcSocket<TRemote extends {}, TLocal extends {}> {
76
90
  oldValue.removeEventListener('error', this.__handlers.error);
77
91
  oldValue.removeEventListener('message', this.__handlers.message);
78
92
  }
79
- await ready(newValue);
93
+ await connected(newValue);
80
94
  const info = await this.authSocket();
81
95
  if (this.__socket === newValue) {
82
96
  newValue.addEventListener('open', this.__handlers.open);
@@ -93,16 +107,16 @@ export abstract class RpcSocket<TRemote extends {}, TLocal extends {}> {
93
107
  /** 认证 WebSocket */
94
108
  protected abstract authSocket(): Promise<RpcMetadata>;
95
109
  /** 响应 WebSocket error */
96
- protected onError(_ev: WebSocket.ErrorEvent): void {
110
+ protected onError(_ev: ErrorEvent | Event): void {
97
111
  this._remoteMetadata = undefined;
98
112
  this.makeReady();
99
113
  }
100
114
  /** 响应 WebSocket open */
101
- protected onOpen(_ev: WebSocket.Event): void {
115
+ protected onOpen(_ev: Event): void {
102
116
  //
103
117
  }
104
118
  /** 响应 WebSocket close */
105
- protected onClose(ev: WebSocket.CloseEvent): void {
119
+ protected onClose(ev: CloseEvent): void {
106
120
  this._remoteMetadata = undefined;
107
121
  if (ev.code === 1000) {
108
122
  this.destroy();
@@ -111,8 +125,8 @@ export abstract class RpcSocket<TRemote extends {}, TLocal extends {}> {
111
125
  }
112
126
  }
113
127
  /** 响应 WebSocket message */
114
- protected onMessage(ev: WebSocket.MessageEvent): void {
115
- const payload = decodePayload(ev.data);
128
+ protected onMessage(ev: MessageEvent): void {
129
+ const payload = decodePayload(ev.data as Data);
116
130
  let error;
117
131
  if (payload) {
118
132
  const handled = this.onPayload(payload);
@@ -233,7 +247,10 @@ export abstract class RpcSocket<TRemote extends {}, TLocal extends {}> {
233
247
  }
234
248
  }
235
249
  /** 发送数据 */
236
- protected async sendPayload<T extends RpcPayload['type']>(type: T, info: Omit<RpcPayload & { type: T }, 'type'>): Promise<void> {
250
+ protected async sendPayload<T extends RpcPayload['type']>(
251
+ type: T,
252
+ info: Omit<RpcPayload & { type: T }, 'type'>,
253
+ ): Promise<void> {
237
254
  await this.ready;
238
255
  send(this.socket, type, info);
239
256
  }
@@ -245,9 +262,15 @@ export abstract class RpcSocket<TRemote extends {}, TLocal extends {}> {
245
262
  this.seq += 2;
246
263
  return seq;
247
264
  }
248
- private readonly pendingCalls = new Map<number, [resolve: (result: unknown) => void, reject: (error: Error) => void]>();
265
+ private readonly pendingCalls = new Map<
266
+ number,
267
+ [resolve: (result: unknown) => void, reject: (error: Error) => void]
268
+ >();
249
269
  /** 调用远程方法 */
250
- call<TMethod extends Methods<TRemote>>(method: TMethod, ...args: RpcParameters<TRemote[TMethod]>): Promise<RpcReturns<TRemote[TMethod]>> {
270
+ call<TMethod extends Methods<TRemote>>(
271
+ method: TMethod,
272
+ ...args: RpcParameters<TRemote[TMethod]>
273
+ ): Promise<RpcReturns<TRemote[TMethod]>> {
251
274
  return new Promise((resolve, reject) => {
252
275
  const seq = this.nextSeq();
253
276
  void this.sendPayload('call', { seq, method, args });
@@ -255,14 +278,20 @@ export abstract class RpcSocket<TRemote extends {}, TLocal extends {}> {
255
278
  });
256
279
  }
257
280
  /** 调用远程方法,放弃返回值 */
258
- notify<TNotification extends Notifications<TRemote>>(method: TNotification, ...args: RpcParameters<TRemote[TNotification]>): void {
281
+ notify<TNotification extends Notifications<TRemote>>(
282
+ method: TNotification,
283
+ ...args: RpcParameters<TRemote[TNotification]>
284
+ ): void {
259
285
  const seq = this.nextSeq();
260
286
  void this.sendPayload('notify', { seq, method, args });
261
287
  }
262
288
 
263
289
  private readonly pendingSubscriptions = new Map<number, Subscriber<unknown>>();
264
290
  /** 调用远程订阅 */
265
- subscribe<TSubject extends Subjects<TRemote>>(method: TSubject, ...args: RpcParameters<TRemote[TSubject]>): Observable<RpcReturns<TRemote[TSubject]>> {
291
+ subscribe<TSubject extends Subjects<TRemote>>(
292
+ method: TSubject,
293
+ ...args: RpcParameters<TRemote[TSubject]>
294
+ ): Observable<RpcReturns<TRemote[TSubject]>> {
266
295
  return new Observable((subscriber) => {
267
296
  const seq = this.nextSeq();
268
297
  void this.sendPayload('subscribe', { seq, method, args });
@@ -275,7 +304,10 @@ export abstract class RpcSocket<TRemote extends {}, TLocal extends {}> {
275
304
  }
276
305
  /** 结束 */
277
306
  destroy(): void {
278
- if (this.__socket && (this.__socket.readyState === this.__socket.CONNECTING || this.__socket.readyState === this.__socket.OPEN)) {
307
+ if (
308
+ this.__socket &&
309
+ (this.__socket.readyState === this.__socket.CONNECTING || this.__socket.readyState === this.__socket.OPEN)
310
+ ) {
279
311
  this.__socket.close(1000);
280
312
  this.__socket = undefined;
281
313
  }
@@ -26,7 +26,11 @@ export type Methods<T> = {
26
26
  string;
27
27
  /** 提取类型中的通知 */
28
28
  export type Notifications<T> = {
29
- [P in keyof T]: T[P] extends (...args: any[]) => infer R ? (IsNotificationReturn<R> extends true ? P : never) : never;
29
+ [P in keyof T]: T[P] extends (...args: any[]) => infer R
30
+ ? IsNotificationReturn<R> extends true
31
+ ? P
32
+ : never
33
+ : never;
30
34
  }[keyof T] &
31
35
  string;
32
36
  /** 提取类型中的订阅主题 */
@@ -38,7 +42,11 @@ export type Subjects<T> = {
38
42
  /** RPC 调用的参数 */
39
43
  export type RpcParameters<T> = T extends (...args: infer R) => any ? R : never;
40
44
  /** RPC 调用的返回 */
41
- export type RpcReturns<T> = T extends (...args: any[]) => infer R ? (Awaited<R> extends ObservableLike<infer U> ? U : Awaited<R>) : never;
45
+ export type RpcReturns<T> = T extends (...args: any[]) => infer R
46
+ ? Awaited<R> extends ObservableLike<infer U>
47
+ ? U
48
+ : Awaited<R>
49
+ : never;
42
50
 
43
51
  /** RPC 调用函数的实现 */
44
52
  type RpcField<T> = T extends (...args: infer P) => infer R
@@ -1,9 +1,12 @@
1
- import type WebSocket from 'isomorphic-ws';
2
1
  import { encode } from '@cloudpss/ubjson';
3
2
  import type { RpcPayload } from '../types/payload.js';
4
3
 
5
4
  /** 发送消息 */
6
- export function send<T extends RpcPayload['type']>(socket: WebSocket, type: T, info: Omit<RpcPayload & { type: T }, 'type'>): void {
5
+ export function send<T extends RpcPayload['type']>(
6
+ socket: WebSocket,
7
+ type: T,
8
+ info: Omit<RpcPayload & { type: T }, 'type'>,
9
+ ): void {
7
10
  socket.send(
8
11
  encode({
9
12
  ...info,
@@ -1,11 +1,10 @@
1
1
  import { decode } from '@cloudpss/ubjson';
2
- import type WebSocket from 'isomorphic-ws';
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: WebSocket.Data): RpcPayload | undefined {
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;
@@ -58,7 +57,8 @@ export function deserializeError(error: RpcErrorLike): Error {
58
57
  } else {
59
58
  ex = new Error(message);
60
59
  }
61
- if (name !== ex?.name) Object.defineProperty(ex, 'name', { value: String(name), configurable: true, writable: true });
60
+ if (name !== ex?.name)
61
+ Object.defineProperty(ex, 'name', { value: String(name), configurable: true, writable: true });
62
62
  Object.defineProperty(ex, 'stack', {
63
63
  value: stack ? String(stack) : undefined,
64
64
  configurable: true,
package/tests/client.js CHANGED
@@ -16,5 +16,7 @@ const s = rpc.subscribe('timer', 1000).subscribe({
16
16
  await setTimeout(1000);
17
17
  s.unsubscribe();
18
18
  rpc.socket.close(3600);
19
+ await setTimeout(1000);
20
+ console.log(await rpc.call('hello', 'world'));
19
21
 
20
22
  new WebSocket('ws://localhost:8090');
package/tests/server.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /* eslint-disable no-console */
2
2
  import { RpcServer } from '@cloudpss/ubrpc';
3
3
  import { interval, take, tap } from 'rxjs';
4
- import { WebSocketServer } from 'ws';
4
+ import { WebSocketServer } from '@cloudpss/ws';
5
5
  const a = {
6
6
  greetings: 'Hello, ',
7
7
  /**
@@ -1,4 +0,0 @@
1
- /// <reference types="ws" />
2
- import type WebSocket from 'isomorphic-ws';
3
- /** 等待连接建立 */
4
- export declare function ready(socket: WebSocket): Promise<void>;
@@ -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"}
@@ -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
- }