@ichaingo/web-socket 1.3.4 → 1.3.6
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/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +41 -23
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -23,6 +23,7 @@ export interface WebSocketEvents {
|
|
|
23
23
|
*/
|
|
24
24
|
export interface WebSocketConfig {
|
|
25
25
|
url: string;
|
|
26
|
+
params?: Record<string, string>;
|
|
26
27
|
protocols?: string | string[];
|
|
27
28
|
reconnectInterval?: number;
|
|
28
29
|
maxReconnectAttempts?: number;
|
|
@@ -50,7 +51,7 @@ declare class SocketConnection {
|
|
|
50
51
|
/**
|
|
51
52
|
* 连接WebSocket
|
|
52
53
|
*/
|
|
53
|
-
connect(): Promise<void>;
|
|
54
|
+
connect(config?: WebSocketConfig): Promise<void>;
|
|
54
55
|
/**
|
|
55
56
|
* 断开连接
|
|
56
57
|
*/
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,oBAAY,gBAAgB;IAC1B,UAAU,eAAe;IACzB,SAAS,cAAc;IACvB,YAAY,iBAAiB;IAC7B,YAAY,iBAAiB;IAC7B,KAAK,UAAU;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,KAAK,IAAI,CAAC;IACrD,KAAK,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IACnC,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAC9B,YAAY,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAC;CAClD;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;GAGG;AACH,cAAM,gBAAgB;IACpB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAiC;IACxD,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,MAAM,CAAmD;IACjE,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,cAAc,CAAgC;IAEtD,OAAO;IAUP;;OAEG;WACW,WAAW,CAAC,MAAM,CAAC,EAAE,eAAe,GAAG,gBAAgB;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,oBAAY,gBAAgB;IAC1B,UAAU,eAAe;IACzB,SAAS,cAAc;IACvB,YAAY,iBAAiB;IAC7B,YAAY,iBAAiB;IAC7B,KAAK,UAAU;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,KAAK,IAAI,CAAC;IACrD,KAAK,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IACnC,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAC9B,YAAY,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAC;CAClD;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;GAGG;AACH,cAAM,gBAAgB;IACpB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAiC;IACxD,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,MAAM,CAAmD;IACjE,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,cAAc,CAAgC;IAEtD,OAAO;IAUP;;OAEG;WACW,WAAW,CAAC,MAAM,CAAC,EAAE,eAAe,GAAG,gBAAgB;IAoBrE;;OAEG;IACI,OAAO,CAAC,MAAM,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAwCvD;;OAEG;IACI,UAAU,IAAI,IAAI;IAazB;;OAEG;IACI,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,GAAG,OAAO;IAWvD;;OAEG;IACI,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO;IAIvC;;OAEG;IACI,EAAE,CAAC,CAAC,SAAS,MAAM,eAAe,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI;IAIxF;;OAEG;IACI,GAAG,CAAC,CAAC,SAAS,MAAM,eAAe,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAI3D;;OAEG;IACI,SAAS,IAAI,gBAAgB;IAIpC;;OAEG;IACI,WAAW,IAAI,OAAO;IAI7B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA6B3B;;OAEG;IACH,OAAO,CAAC,SAAS;IAQjB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAezB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAO3B;;OAEG;IACH,OAAO,CAAC,cAAc;IAYtB;;OAEG;IACH,OAAO,CAAC,aAAa;IAOrB;;OAEG;IACH,OAAO,CAAC,GAAG;IAMX;;OAEG;IACI,OAAO,IAAI,IAAI;CAKvB;AAED,eAAe,gBAAgB,CAAC;AAGhC,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC9E,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -41,41 +41,59 @@ class SocketConnection {
|
|
|
41
41
|
}
|
|
42
42
|
SocketConnection.instance = new SocketConnection(config);
|
|
43
43
|
}
|
|
44
|
+
else if (config) {
|
|
45
|
+
if (JSON.stringify(SocketConnection.instance.config) !== JSON.stringify(config)) {
|
|
46
|
+
SocketConnection.instance = new SocketConnection(config);
|
|
47
|
+
}
|
|
48
|
+
if (config) {
|
|
49
|
+
SocketConnection.instance.config = {
|
|
50
|
+
...SocketConnection.instance.config,
|
|
51
|
+
...config
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
}
|
|
44
55
|
return SocketConnection.instance;
|
|
45
56
|
}
|
|
46
57
|
/**
|
|
47
58
|
* 连接WebSocket
|
|
48
59
|
*/
|
|
49
|
-
connect() {
|
|
60
|
+
connect(config) {
|
|
61
|
+
this.config = {
|
|
62
|
+
...this.config,
|
|
63
|
+
...config
|
|
64
|
+
};
|
|
50
65
|
return new Promise((resolve, reject) => {
|
|
51
66
|
if (this.socket?.readyState === WebSocket.OPEN) {
|
|
52
67
|
resolve();
|
|
53
68
|
return;
|
|
54
69
|
}
|
|
55
|
-
this.
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
this.
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
this.
|
|
62
|
-
this.
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
+
const url = this.config.url + (this.config?.params ? `?${Object.entries(this.config.params).map(([key, value]) => `${key}=${value}`).join('&')}` : '');
|
|
71
|
+
if (config?.params) {
|
|
72
|
+
this.setStatus(ConnectionStatus.CONNECTING);
|
|
73
|
+
this.log('正在连接WebSocket...', url);
|
|
74
|
+
try {
|
|
75
|
+
this.socket = new WebSocket(url, this.config.protocols);
|
|
76
|
+
this.setupEventListeners();
|
|
77
|
+
this.socket.onopen = () => {
|
|
78
|
+
this.log('WebSocket连接成功');
|
|
79
|
+
this.setStatus(ConnectionStatus.CONNECTED);
|
|
80
|
+
this.reconnectAttempts = 0;
|
|
81
|
+
this.startHeartbeat();
|
|
82
|
+
this.eventListeners.open?.();
|
|
83
|
+
resolve();
|
|
84
|
+
};
|
|
85
|
+
this.socket.onerror = (error) => {
|
|
86
|
+
this.log('WebSocket连接错误:', error);
|
|
87
|
+
this.setStatus(ConnectionStatus.ERROR);
|
|
88
|
+
this.eventListeners.error?.(error);
|
|
89
|
+
reject(error);
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
catch (error) {
|
|
93
|
+
this.log('创建WebSocket连接失败:', error);
|
|
70
94
|
this.setStatus(ConnectionStatus.ERROR);
|
|
71
|
-
this.eventListeners.error?.(error);
|
|
72
95
|
reject(error);
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
catch (error) {
|
|
76
|
-
this.log('创建WebSocket连接失败:', error);
|
|
77
|
-
this.setStatus(ConnectionStatus.ERROR);
|
|
78
|
-
reject(error);
|
|
96
|
+
}
|
|
79
97
|
}
|
|
80
98
|
});
|
|
81
99
|
}
|