wechaty-puppet-matrix 0.0.9 → 0.0.10

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.
@@ -200,7 +200,11 @@ declare class Client extends EventEmitter {
200
200
  private readonly MAX_RECONNECT_ATTEMPTS;
201
201
  private readonly INITIAL_RECONNECT_DELAY;
202
202
  private readonly MAX_RECONNECT_DELAY;
203
+ private readonly HEARTBEAT_INTERVAL;
204
+ private readonly HEARTBEAT_TIMEOUT;
203
205
  private reconnectAttempts;
206
+ private heartbeatTimer?;
207
+ private heartbeatTimeoutTimer?;
204
208
  socket: any;
205
209
  server: any;
206
210
  tokenInfo: any;
@@ -221,6 +225,10 @@ declare class Client extends EventEmitter {
221
225
  initServer(): Promise<void>;
222
226
  createWebSocket(): Promise<void>;
223
227
  private setupWebSocketListeners;
228
+ private startHeartbeat;
229
+ private stopHeartbeat;
230
+ private setHeartbeatTimeout;
231
+ private resetHeartbeatTimeout;
224
232
  private handleWebSocketClose;
225
233
  private reconnect;
226
234
  eventParse(eventData: any): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../../../../src/matrix/service/request.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../../../../src/matrix/service/request.ts"],"names":[],"mappings":"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"}
@@ -132,7 +132,11 @@ class Client extends events_1.EventEmitter {
132
132
  MAX_RECONNECT_ATTEMPTS = 10;
133
133
  INITIAL_RECONNECT_DELAY = 1000;
134
134
  MAX_RECONNECT_DELAY = 30000;
135
+ HEARTBEAT_INTERVAL = 40 * 1000;
136
+ HEARTBEAT_TIMEOUT = 5000;
135
137
  reconnectAttempts = 0;
138
+ heartbeatTimer;
139
+ heartbeatTimeoutTimer;
136
140
  socket;
137
141
  server;
138
142
  tokenInfo;
@@ -190,7 +194,7 @@ class Client extends events_1.EventEmitter {
190
194
  ws.once('open', () => {
191
195
  this.connectionStatus.status = 'connected';
192
196
  this.reconnectAttempts = 0;
193
- wechaty_puppet_1.log.silly('WebSocket connection opened');
197
+ wechaty_puppet_1.log.info('WebSocket connection opened');
194
198
  resolve();
195
199
  });
196
200
  ws.once('error', (error) => {
@@ -202,12 +206,17 @@ class Client extends events_1.EventEmitter {
202
206
  reject(new Error(`WebSocket closed: ${code} - ${reason}`));
203
207
  });
204
208
  });
205
- this.setupWebSocketListeners(ws);
206
209
  this.socket = ws;
210
+ this.setupWebSocketListeners(ws);
207
211
  }
208
212
  setupWebSocketListeners(ws) {
209
213
  ws.on('message', (data) => {
214
+ this.resetHeartbeatTimeout();
210
215
  wechaty_puppet_1.log.silly(PRE, 'initWebSocket() ws.on(message): %s', data);
216
+ if (data.toString() === 'pong') {
217
+ wechaty_puppet_1.log.info('Received heartbeat');
218
+ return;
219
+ }
211
220
  try {
212
221
  const payload = JSON.parse(data);
213
222
  wechaty_puppet_1.log.info('Received payload', JSON.stringify(payload));
@@ -227,13 +236,59 @@ class Client extends events_1.EventEmitter {
227
236
  this.emit('error', error);
228
237
  });
229
238
  ws.on('close', (code, reason) => {
239
+ this.stopHeartbeat();
230
240
  void this.handleWebSocketClose(code, reason);
231
241
  });
242
+ this.startHeartbeat();
243
+ }
244
+ startHeartbeat() {
245
+ this.stopHeartbeat();
246
+ this.socket?.send('ping');
247
+ this.heartbeatTimer = setInterval(() => {
248
+ if (this.socket?.readyState === ws_1.default.OPEN) {
249
+ try {
250
+ this.socket.send('ping');
251
+ this.setHeartbeatTimeout();
252
+ }
253
+ catch (error) {
254
+ wechaty_puppet_1.log.error('Failed to send heartbeat:', error);
255
+ void this.handleWebSocketClose(1006, 'Heartbeat failed');
256
+ }
257
+ }
258
+ }, this.HEARTBEAT_INTERVAL);
259
+ }
260
+ stopHeartbeat() {
261
+ if (this.heartbeatTimer) {
262
+ clearInterval(this.heartbeatTimer);
263
+ this.heartbeatTimer = undefined;
264
+ }
265
+ if (this.heartbeatTimeoutTimer) {
266
+ clearTimeout(this.heartbeatTimeoutTimer);
267
+ this.heartbeatTimeoutTimer = undefined;
268
+ }
269
+ }
270
+ setHeartbeatTimeout() {
271
+ if (this.heartbeatTimeoutTimer) {
272
+ clearTimeout(this.heartbeatTimeoutTimer);
273
+ }
274
+ this.heartbeatTimeoutTimer = setTimeout(() => {
275
+ wechaty_puppet_1.log.warn('Heartbeat timeout, reconnecting...');
276
+ void this.handleWebSocketClose(1006, 'Heartbeat timeout');
277
+ }, this.HEARTBEAT_TIMEOUT);
278
+ }
279
+ resetHeartbeatTimeout() {
280
+ if (this.heartbeatTimeoutTimer) {
281
+ clearTimeout(this.heartbeatTimeoutTimer);
282
+ this.heartbeatTimeoutTimer = undefined;
283
+ }
232
284
  }
233
285
  async handleWebSocketClose(code, reason) {
234
286
  this.connectionStatus.status = 'disconnected';
235
287
  wechaty_puppet_1.log.warn(`WebSocket closed: Code ${code}, Reason ${reason}`);
236
- this.socket = null;
288
+ if (this.socket) {
289
+ this.socket.close();
290
+ this.socket = null;
291
+ }
237
292
  await this.reconnect();
238
293
  }
239
294
  async reconnect() {
@@ -200,7 +200,11 @@ declare class Client extends EventEmitter {
200
200
  private readonly MAX_RECONNECT_ATTEMPTS;
201
201
  private readonly INITIAL_RECONNECT_DELAY;
202
202
  private readonly MAX_RECONNECT_DELAY;
203
+ private readonly HEARTBEAT_INTERVAL;
204
+ private readonly HEARTBEAT_TIMEOUT;
203
205
  private reconnectAttempts;
206
+ private heartbeatTimer?;
207
+ private heartbeatTimeoutTimer?;
204
208
  socket: any;
205
209
  server: any;
206
210
  tokenInfo: any;
@@ -221,6 +225,10 @@ declare class Client extends EventEmitter {
221
225
  initServer(): Promise<void>;
222
226
  createWebSocket(): Promise<void>;
223
227
  private setupWebSocketListeners;
228
+ private startHeartbeat;
229
+ private stopHeartbeat;
230
+ private setHeartbeatTimeout;
231
+ private resetHeartbeatTimeout;
224
232
  private handleWebSocketClose;
225
233
  private reconnect;
226
234
  eventParse(eventData: any): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../../../../src/matrix/service/request.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../../../../src/matrix/service/request.ts"],"names":[],"mappings":"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"}
@@ -93,7 +93,11 @@ class Client extends EventEmitter {
93
93
  MAX_RECONNECT_ATTEMPTS = 10;
94
94
  INITIAL_RECONNECT_DELAY = 1000;
95
95
  MAX_RECONNECT_DELAY = 30000;
96
+ HEARTBEAT_INTERVAL = 40 * 1000;
97
+ HEARTBEAT_TIMEOUT = 5000;
96
98
  reconnectAttempts = 0;
99
+ heartbeatTimer;
100
+ heartbeatTimeoutTimer;
97
101
  socket;
98
102
  server;
99
103
  tokenInfo;
@@ -151,7 +155,7 @@ class Client extends EventEmitter {
151
155
  ws.once('open', () => {
152
156
  this.connectionStatus.status = 'connected';
153
157
  this.reconnectAttempts = 0;
154
- log.silly('WebSocket connection opened');
158
+ log.info('WebSocket connection opened');
155
159
  resolve();
156
160
  });
157
161
  ws.once('error', (error) => {
@@ -163,12 +167,17 @@ class Client extends EventEmitter {
163
167
  reject(new Error(`WebSocket closed: ${code} - ${reason}`));
164
168
  });
165
169
  });
166
- this.setupWebSocketListeners(ws);
167
170
  this.socket = ws;
171
+ this.setupWebSocketListeners(ws);
168
172
  }
169
173
  setupWebSocketListeners(ws) {
170
174
  ws.on('message', (data) => {
175
+ this.resetHeartbeatTimeout();
171
176
  log.silly(PRE, 'initWebSocket() ws.on(message): %s', data);
177
+ if (data.toString() === 'pong') {
178
+ log.info('Received heartbeat');
179
+ return;
180
+ }
172
181
  try {
173
182
  const payload = JSON.parse(data);
174
183
  log.info('Received payload', JSON.stringify(payload));
@@ -188,13 +197,59 @@ class Client extends EventEmitter {
188
197
  this.emit('error', error);
189
198
  });
190
199
  ws.on('close', (code, reason) => {
200
+ this.stopHeartbeat();
191
201
  void this.handleWebSocketClose(code, reason);
192
202
  });
203
+ this.startHeartbeat();
204
+ }
205
+ startHeartbeat() {
206
+ this.stopHeartbeat();
207
+ this.socket?.send('ping');
208
+ this.heartbeatTimer = setInterval(() => {
209
+ if (this.socket?.readyState === WebSocket.OPEN) {
210
+ try {
211
+ this.socket.send('ping');
212
+ this.setHeartbeatTimeout();
213
+ }
214
+ catch (error) {
215
+ log.error('Failed to send heartbeat:', error);
216
+ void this.handleWebSocketClose(1006, 'Heartbeat failed');
217
+ }
218
+ }
219
+ }, this.HEARTBEAT_INTERVAL);
220
+ }
221
+ stopHeartbeat() {
222
+ if (this.heartbeatTimer) {
223
+ clearInterval(this.heartbeatTimer);
224
+ this.heartbeatTimer = undefined;
225
+ }
226
+ if (this.heartbeatTimeoutTimer) {
227
+ clearTimeout(this.heartbeatTimeoutTimer);
228
+ this.heartbeatTimeoutTimer = undefined;
229
+ }
230
+ }
231
+ setHeartbeatTimeout() {
232
+ if (this.heartbeatTimeoutTimer) {
233
+ clearTimeout(this.heartbeatTimeoutTimer);
234
+ }
235
+ this.heartbeatTimeoutTimer = setTimeout(() => {
236
+ log.warn('Heartbeat timeout, reconnecting...');
237
+ void this.handleWebSocketClose(1006, 'Heartbeat timeout');
238
+ }, this.HEARTBEAT_TIMEOUT);
239
+ }
240
+ resetHeartbeatTimeout() {
241
+ if (this.heartbeatTimeoutTimer) {
242
+ clearTimeout(this.heartbeatTimeoutTimer);
243
+ this.heartbeatTimeoutTimer = undefined;
244
+ }
193
245
  }
194
246
  async handleWebSocketClose(code, reason) {
195
247
  this.connectionStatus.status = 'disconnected';
196
248
  log.warn(`WebSocket closed: Code ${code}, Reason ${reason}`);
197
- this.socket = null;
249
+ if (this.socket) {
250
+ this.socket.close();
251
+ this.socket = null;
252
+ }
198
253
  await this.reconnect();
199
254
  }
200
255
  async reconnect() {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wechaty-puppet-matrix",
3
- "version": "0.0.9",
3
+ "version": "0.0.10",
4
4
  "description": "Puppet matrix for Wechaty",
5
5
  "type": "module",
6
6
  "typings": "./dist/esm/src/mod.d.ts",
@@ -340,7 +340,11 @@ class Client extends EventEmitter {
340
340
  private readonly MAX_RECONNECT_ATTEMPTS = 10
341
341
  private readonly INITIAL_RECONNECT_DELAY = 1000 // 1秒
342
342
  private readonly MAX_RECONNECT_DELAY = 30000 // 30秒
343
+ private readonly HEARTBEAT_INTERVAL = 40 * 1000 // 1分钟心跳间隔
344
+ private readonly HEARTBEAT_TIMEOUT = 5000 // 5秒超时
343
345
  private reconnectAttempts = 0
346
+ private heartbeatTimer?: any
347
+ private heartbeatTimeoutTimer?: any
344
348
  socket: any
345
349
  server: any
346
350
  tokenInfo: any
@@ -407,7 +411,6 @@ class Client extends EventEmitter {
407
411
  log.error('Token info not available')
408
412
  return
409
413
  }
410
-
411
414
  const ws = new WebSocket(
412
415
  `${this.tokenInfo.endpoint}?guid=${this.tokenInfo.guid}`,
413
416
  {
@@ -421,7 +424,7 @@ class Client extends EventEmitter {
421
424
  ws.once('open', () => {
422
425
  this.connectionStatus.status = 'connected'
423
426
  this.reconnectAttempts = 0
424
- log.silly('WebSocket connection opened')
427
+ log.info('WebSocket connection opened')
425
428
  resolve()
426
429
  })
427
430
 
@@ -435,17 +438,21 @@ class Client extends EventEmitter {
435
438
  reject(new Error(`WebSocket closed: ${code} - ${reason}`))
436
439
  })
437
440
  })
441
+ this.socket = ws
438
442
 
439
443
  // 设置事件处理器
440
444
  this.setupWebSocketListeners(ws)
441
-
442
- this.socket = ws
443
445
  }
444
446
 
445
447
  private setupWebSocketListeners (ws: WebSocket): void {
446
448
  // 消息处理
447
449
  ws.on('message', (data: string) => {
450
+ this.resetHeartbeatTimeout() // 收到任何消息都重置心跳超时
448
451
  log.silly(PRE, 'initWebSocket() ws.on(message): %s', data)
452
+ if (data.toString() === 'pong') {
453
+ log.info('Received heartbeat')
454
+ return
455
+ }
449
456
  try {
450
457
  const payload = JSON.parse(data)
451
458
  log.info('Received payload', JSON.stringify(payload))
@@ -471,14 +478,69 @@ class Client extends EventEmitter {
471
478
 
472
479
  // 关闭处理
473
480
  ws.on('close', (code:any, reason: any) => {
481
+ this.stopHeartbeat()
474
482
  void this.handleWebSocketClose(code, reason)
475
483
  })
484
+ // 启动心跳
485
+ this.startHeartbeat()
486
+ }
487
+
488
+ private startHeartbeat (): void {
489
+ this.stopHeartbeat() // 确保清理现有定时器
490
+ this.socket?.send('ping')
491
+ this.heartbeatTimer = setInterval(() => {
492
+ if (this.socket?.readyState === WebSocket.OPEN) {
493
+ try {
494
+ this.socket.send('ping')
495
+ this.setHeartbeatTimeout()
496
+ } catch (error) {
497
+ log.error('Failed to send heartbeat:', error)
498
+ void this.handleWebSocketClose(1006, 'Heartbeat failed')
499
+ }
500
+ }
501
+ }, this.HEARTBEAT_INTERVAL)
502
+ }
503
+
504
+ private stopHeartbeat (): void {
505
+ if (this.heartbeatTimer) {
506
+ // @ts-ignore
507
+ clearInterval(this.heartbeatTimer)
508
+ this.heartbeatTimer = undefined
509
+ }
510
+ if (this.heartbeatTimeoutTimer) {
511
+ // @ts-ignore
512
+ clearTimeout(this.heartbeatTimeoutTimer)
513
+ this.heartbeatTimeoutTimer = undefined
514
+ }
515
+ }
516
+
517
+ private setHeartbeatTimeout (): void {
518
+ if (this.heartbeatTimeoutTimer) {
519
+ // @ts-ignore
520
+ clearTimeout(this.heartbeatTimeoutTimer)
521
+ }
522
+ this.heartbeatTimeoutTimer = setTimeout(() => {
523
+ log.warn('Heartbeat timeout, reconnecting...')
524
+ void this.handleWebSocketClose(1006, 'Heartbeat timeout')
525
+ }, this.HEARTBEAT_TIMEOUT)
526
+ }
527
+
528
+ private resetHeartbeatTimeout (): void {
529
+ if (this.heartbeatTimeoutTimer) {
530
+ // @ts-ignore
531
+ clearTimeout(this.heartbeatTimeoutTimer)
532
+ this.heartbeatTimeoutTimer = undefined
533
+ }
476
534
  }
477
535
 
478
- private async handleWebSocketClose (code?: number, reason?: Buffer) {
536
+ private async handleWebSocketClose (code?: number, reason?: Buffer | String) {
479
537
  this.connectionStatus.status = 'disconnected'
480
538
  log.warn(`WebSocket closed: Code ${code}, Reason ${reason}`)
481
- this.socket = null
539
+ if (this.socket) {
540
+ this.socket.close()
541
+ this.socket = null
542
+ }
543
+
482
544
  // 触发重连
483
545
  await this.reconnect()
484
546