diff --git a/src/client.ts b/src/client.ts index 7138f59..344da4b 100644 --- a/src/client.ts +++ b/src/client.ts @@ -4,6 +4,7 @@ import { DeviceDrawProps, DeviceRegisterProps } from './device-types/api.js' import { DEFAULT_PORT } from './lib.js' const PING_UNACKED_LIMIT = 5 // Arbitrary number +const PING_IDLE_TIMEOUT = 500 // Pings are allowed to be late if another packet has been received recently const PING_INTERVAL = 100 const RECONNECT_DELAY = 1000 @@ -62,6 +63,7 @@ export class CompanionSatelliteClient extends EE3.EventEmitter this.sendPing(), PING_INTERVAL) @@ -143,7 +147,7 @@ export class CompanionSatelliteClient extends EE3.EventEmitter PING_UNACKED_LIMIT) { + if (this._pingUnackedCount > PING_UNACKED_LIMIT && this._lastReceivedAt <= Date.now() - PING_IDLE_TIMEOUT) { // Ping was never acked, so it looks like a timeout this.emit('log', 'ping timeout') try { @@ -204,16 +208,17 @@ export class CompanionSatelliteClient extends EE3.EventEmitter