@cloudpss/ubrpc 0.6.0-alpha.8 → 0.6.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/auth.js +1 -1
- package/dist/auth.js.map +1 -1
- package/dist/client.d.ts +2 -8
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +1 -1
- package/dist/client.js.map +1 -1
- package/dist/server.d.ts +1 -1
- package/dist/types/utils.d.ts +2 -2
- package/dist/types/utils.d.ts.map +1 -1
- package/dist/types/utils.js +2 -0
- package/dist/types/utils.js.map +1 -1
- package/package.json +3 -3
- package/src/auth.ts +1 -1
- package/src/client.ts +1 -1
- package/src/server.ts +1 -1
- package/src/types/utils.ts +4 -4
- package/tests/server.ts +5 -5
package/dist/auth.js
CHANGED
|
@@ -12,7 +12,7 @@ export async function waitAuth(socket, seq, id) {
|
|
|
12
12
|
const handleMessage = (ev) => {
|
|
13
13
|
try {
|
|
14
14
|
const payload = decodePayload(ev.data);
|
|
15
|
-
if (
|
|
15
|
+
if (payload?.type !== 'auth') {
|
|
16
16
|
if (isResponse)
|
|
17
17
|
return reject(new Error(`Failed to authenticate, bad response from server`));
|
|
18
18
|
else
|
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,CAAC,KAAK,UAAU,QAAQ,CAC1B,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,CAAC;gBACD,MAAM,OAAO,GAAG,aAAa,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;gBACvC,IAAI,
|
|
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,CAAC,KAAK,UAAU,QAAQ,CAC1B,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,CAAC;gBACD,MAAM,OAAO,GAAG,aAAa,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;gBACvC,IAAI,OAAO,EAAE,IAAI,KAAK,MAAM,EAAE,CAAC;oBAC3B,IAAI,UAAU;wBAAE,OAAO,MAAM,CAAC,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC,CAAC;;wBACxF,OAAO,MAAM,CAAC,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC,CAAC;gBACrF,CAAC;gBACD,IAAI,OAAO,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;oBAC9B,OAAO,MAAM,CACT,IAAI,KAAK,CACL,uDAAuD,OAAO,SAAS,OAAO,CAAC,OAAO,EAAE,CAC3F,CACJ,CAAC;gBACN,CAAC;gBACD,IAAI,UAAU,EAAE,CAAC;oBACb,IAAI,OAAO,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;wBACtB,OAAO,MAAM,CAAC,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC,CAAC;oBACrF,CAAC;oBACD,IAAI,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;wBACpB,OAAO,MAAM,CAAC,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC,CAAC;oBACpF,CAAC;gBACL,CAAC;gBACD,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;oBAChB,OAAO,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;gBACnD,CAAC;gBACD,MAAM,QAAQ,GAAG,OAAO,OAAO,CAAC,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;gBACrF,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC;YACjD,CAAC;YAAC,OAAO,EAAE,EAAE,CAAC;gBACV,MAAM,CAAC,EAAW,CAAC,CAAC;YACxB,CAAC;oBAAS,CAAC;gBACP,QAAQ,EAAE,CAAC;YACf,CAAC;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,17 +1,11 @@
|
|
|
1
|
+
import { WebSocket } from '@cloudpss/fetch';
|
|
1
2
|
import { RpcSocket } from './socket.js';
|
|
2
3
|
import type { RpcMetadata } from './types/payload.js';
|
|
3
4
|
import type { RpcObject } from './types/utils.js';
|
|
4
5
|
/** 由 WS Client 建立的 RPC 连接 */
|
|
5
6
|
export declare class RpcClientSocket<TRemote extends object, TLocal extends object> extends RpcSocket<TRemote, TLocal> {
|
|
6
7
|
/** 建立连接使用的 WebSocket 实现 */
|
|
7
|
-
static WebSocket:
|
|
8
|
-
new (url: string | URL, protocols?: string | string[]): WebSocket;
|
|
9
|
-
prototype: WebSocket;
|
|
10
|
-
readonly CONNECTING: 0;
|
|
11
|
-
readonly OPEN: 1;
|
|
12
|
-
readonly CLOSING: 2;
|
|
13
|
-
readonly CLOSED: 3;
|
|
14
|
-
};
|
|
8
|
+
static WebSocket: typeof WebSocket | null;
|
|
15
9
|
constructor(url: string | URL, metadata?: RpcMetadata, local?: RpcObject<TLocal>);
|
|
16
10
|
readonly url: string;
|
|
17
11
|
/** @inheritdoc */
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAuB,MAAM,iBAAiB,CAAC;AAGjE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,KAAK,EAAgB,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAMlD,6BAA6B;AAC7B,qBAAa,eAAe,CAAC,OAAO,SAAS,MAAM,EAAE,MAAM,SAAS,MAAM,CAAE,SAAQ,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC;IAC1G,2BAA2B;IAC3B,MAAM,CAAC,SAAS,EAAE,OAAO,SAAS,GAAG,IAAI,CAAQ;gBAErC,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,QAAQ,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC;IAQhF,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,kBAAkB;cACO,UAAU,IAAI,OAAO,CAAC,WAAW,CAAC;IAc3D,kBAAkB;cACC,OAAO,CAAC,EAAE,EAAE,UAAU,GAAG,IAAI;IAWhD,WAAW;IACX,SAAS,CAAC,OAAO,IAAI,IAAI;CAW5B"}
|
package/dist/client.js
CHANGED
|
@@ -9,7 +9,7 @@ import { logger } from './logger.js';
|
|
|
9
9
|
/** 由 WS Client 建立的 RPC 连接 */
|
|
10
10
|
export class RpcClientSocket extends RpcSocket {
|
|
11
11
|
/** 建立连接使用的 WebSocket 实现 */
|
|
12
|
-
static { this.WebSocket =
|
|
12
|
+
static { this.WebSocket = null; }
|
|
13
13
|
constructor(url, metadata, local) {
|
|
14
14
|
super(v4(), local);
|
|
15
15
|
this._localMetadata = metadata;
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACjE,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,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,6BAA6B;AAC7B,MAAM,OAAO,eAA+D,SAAQ,SAA0B;IAC1G,2BAA2B;aACpB,cAAS,
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/server.d.ts
CHANGED
|
@@ -12,7 +12,7 @@ type WebSocketWithMetadata = WebSocket & {
|
|
|
12
12
|
* 客户端认证方法
|
|
13
13
|
* @param metadata 客户端传入的认证元数据
|
|
14
14
|
* @returns 服务端返回客户端的认证元数据
|
|
15
|
-
* @throws 认证失败时抛出异常
|
|
15
|
+
* @throws {unknown} 认证失败时抛出异常
|
|
16
16
|
*/
|
|
17
17
|
type RpcClientAuthenticator = (metadata: RpcMetadata) => RpcMetadata | Promise<RpcMetadata>;
|
|
18
18
|
/** 由 WS Server 建立的 RPC 连接组 */
|
package/dist/types/utils.d.ts
CHANGED
|
@@ -10,11 +10,11 @@ type ObservableReturn = ObservableLike<any> | PromiseLike<ObservableLike<any>>;
|
|
|
10
10
|
/** 提取类型中的方法 */
|
|
11
11
|
export type Methods<T> = {
|
|
12
12
|
[P in keyof T]: T[P] extends (...args: any[]) => infer R ? (R extends ObservableReturn ? never : P) : never;
|
|
13
|
-
}[keyof T
|
|
13
|
+
}[keyof T & string];
|
|
14
14
|
/** 提取类型中的通知 */
|
|
15
15
|
export type Notifications<T> = {
|
|
16
16
|
[P in keyof T]: T[P] extends (...args: any[]) => infer R ? IsNotificationReturn<R> extends true ? P : never : never;
|
|
17
|
-
}[keyof T
|
|
17
|
+
}[keyof T & string];
|
|
18
18
|
/** 提取类型中的订阅主题 */
|
|
19
19
|
export type Subjects<T> = {
|
|
20
20
|
[P in keyof T]: T[P] extends (...args: any[]) => ObservableReturn ? P : never;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/types/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAE1D,0BAA0B;AAC1B,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;AAExF,mEAAmE;AACnE,KAAK,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC;AAExG,gBAAgB;AAChB,KAAK,oBAAoB,CAAC,CAAC,IACvB,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,IAAI,GACvB,IAAI,GACJ,OAAO,CAAC,CAAC,EAAE,SAAS,CAAC,SAAS,IAAI,GAChC,IAAI,GACJ,CAAC,SAAS,WAAW,CAAC,IAAI,CAAC,GAAG,IAAI,GAChC,IAAI,GACJ,KAAK,CAAC;AAEpB,0BAA0B;AAC1B,KAAK,gBAAgB,GAAG,cAAc,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;AAE/E,eAAe;AACf,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI;KACpB,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,gBAAgB,GAAG,KAAK,GAAG,CAAC,CAAC,GAAG,KAAK;CAC9G,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/types/utils.ts"],"names":[],"mappings":"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"}
|
package/dist/types/utils.js
CHANGED
package/dist/types/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/types/utils.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/types/utils.ts"],"names":[],"mappings":";AA4DA,yBAAyB;AACzB,gBAAgB;AAChB,qBAAqB;AACrB,8BAA8B;AAC9B,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;AAE7B,yBAAyB;AACzB,0BAA0B;AAE1B,sBAAsB;AACtB,cAAc"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cloudpss/ubrpc",
|
|
3
|
-
"version": "0.6.0-
|
|
3
|
+
"version": "0.6.0-beta.1",
|
|
4
4
|
"author": "CloudPSS",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"keywords": [
|
|
@@ -19,8 +19,8 @@
|
|
|
19
19
|
"dependencies": {
|
|
20
20
|
"rxjs": "^7.8.2",
|
|
21
21
|
"uuid": "^13.0.0",
|
|
22
|
-
"@cloudpss/fetch": "~0.6.0-
|
|
23
|
-
"@cloudpss/ubjson": "~0.6.0-
|
|
22
|
+
"@cloudpss/fetch": "~0.6.0-beta.1",
|
|
23
|
+
"@cloudpss/ubjson": "~0.6.0-beta.1"
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|
|
26
26
|
"@types/ws": "^8.18.1",
|
package/src/auth.ts
CHANGED
|
@@ -20,7 +20,7 @@ export async function waitAuth(
|
|
|
20
20
|
const handleMessage = (ev: MessageEvent): void => {
|
|
21
21
|
try {
|
|
22
22
|
const payload = decodePayload(ev.data);
|
|
23
|
-
if (
|
|
23
|
+
if (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`));
|
|
26
26
|
}
|
package/src/client.ts
CHANGED
|
@@ -12,7 +12,7 @@ import { logger } from './logger.js';
|
|
|
12
12
|
/** 由 WS Client 建立的 RPC 连接 */
|
|
13
13
|
export class RpcClientSocket<TRemote extends object, TLocal extends object> extends RpcSocket<TRemote, TLocal> {
|
|
14
14
|
/** 建立连接使用的 WebSocket 实现 */
|
|
15
|
-
static WebSocket =
|
|
15
|
+
static WebSocket: typeof WebSocket | null = null;
|
|
16
16
|
|
|
17
17
|
constructor(url: string | URL, metadata?: RpcMetadata, local?: RpcObject<TLocal>) {
|
|
18
18
|
super(v4() as ConnectionID, local);
|
package/src/server.ts
CHANGED
|
@@ -18,7 +18,7 @@ type WebSocketWithMetadata = WebSocket & { [kMetadata]: RpcMetadata };
|
|
|
18
18
|
* 客户端认证方法
|
|
19
19
|
* @param metadata 客户端传入的认证元数据
|
|
20
20
|
* @returns 服务端返回客户端的认证元数据
|
|
21
|
-
* @throws 认证失败时抛出异常
|
|
21
|
+
* @throws {unknown} 认证失败时抛出异常
|
|
22
22
|
*/
|
|
23
23
|
type RpcClientAuthenticator = (metadata: RpcMetadata) => RpcMetadata | Promise<RpcMetadata>;
|
|
24
24
|
|
package/src/types/utils.ts
CHANGED
|
@@ -23,8 +23,7 @@ type ObservableReturn = ObservableLike<any> | PromiseLike<ObservableLike<any>>;
|
|
|
23
23
|
/** 提取类型中的方法 */
|
|
24
24
|
export type Methods<T> = {
|
|
25
25
|
[P in keyof T]: T[P] extends (...args: any[]) => infer R ? (R extends ObservableReturn ? never : P) : never;
|
|
26
|
-
}[keyof T
|
|
27
|
-
string;
|
|
26
|
+
}[keyof T & string];
|
|
28
27
|
/** 提取类型中的通知 */
|
|
29
28
|
export type Notifications<T> = {
|
|
30
29
|
[P in keyof T]: T[P] extends (...args: any[]) => infer R
|
|
@@ -32,8 +31,7 @@ export type Notifications<T> = {
|
|
|
32
31
|
? P
|
|
33
32
|
: never
|
|
34
33
|
: never;
|
|
35
|
-
}[keyof T
|
|
36
|
-
string;
|
|
34
|
+
}[keyof T & string];
|
|
37
35
|
/** 提取类型中的订阅主题 */
|
|
38
36
|
export type Subjects<T> = {
|
|
39
37
|
[P in keyof T]: T[P] extends (...args: any[]) => ObservableReturn ? P : never;
|
|
@@ -60,8 +58,10 @@ export type RpcObject<T> = {
|
|
|
60
58
|
[K in keyof T as K & (Subjects<T> | Methods<T>)]: RpcField<T[K]>;
|
|
61
59
|
};
|
|
62
60
|
|
|
61
|
+
// const s = Symbol('x');
|
|
63
62
|
// interface A {
|
|
64
63
|
// field: number;
|
|
64
|
+
// [s](x: number): number;
|
|
65
65
|
// /** methodA */
|
|
66
66
|
// methodA(x: number): number | undefined;
|
|
67
67
|
// methodB: (x: string, y: number) => Promise<number>;
|
package/tests/server.ts
CHANGED
|
@@ -5,18 +5,18 @@ const a = {
|
|
|
5
5
|
greetings: 'Hello, ',
|
|
6
6
|
/**
|
|
7
7
|
* @inheritdoc
|
|
8
|
-
* @param
|
|
8
|
+
* @param name 名字
|
|
9
9
|
*/
|
|
10
|
-
async hello(name) {
|
|
10
|
+
async hello(name: string) {
|
|
11
11
|
console.log('hello', name);
|
|
12
12
|
await Promise.resolve();
|
|
13
13
|
return `${this.greetings}${name}`;
|
|
14
14
|
},
|
|
15
15
|
/**
|
|
16
16
|
* @inheritdoc
|
|
17
|
-
* @param
|
|
17
|
+
* @param i 间隔
|
|
18
18
|
*/
|
|
19
|
-
timer(i) {
|
|
19
|
+
timer(i?: number) {
|
|
20
20
|
return interval(i).pipe(
|
|
21
21
|
take(10),
|
|
22
22
|
tap({
|
|
@@ -43,7 +43,7 @@ const server = new WebSocketServer({
|
|
|
43
43
|
// eslint-disable-next-line @typescript-eslint/no-misused-promises
|
|
44
44
|
server.on('connection', async (socket) => {
|
|
45
45
|
try {
|
|
46
|
-
await rpc.connect(socket);
|
|
46
|
+
await rpc.connect(socket as unknown as WebSocket);
|
|
47
47
|
} catch (ex) {
|
|
48
48
|
console.log(ex);
|
|
49
49
|
}
|