diff --git a/packages/backend/src/server/api/stream/Connection.ts b/packages/backend/src/server/api/stream/Connection.ts index b43a0401ff..07b92a7342 100644 --- a/packages/backend/src/server/api/stream/Connection.ts +++ b/packages/backend/src/server/api/stream/Connection.ts @@ -161,10 +161,19 @@ export default class Connection { case 'disconnect': this.onChannelDisconnectRequested(body); break; case 'channel': this.onChannelMessageRequested(body); break; case 'ch': this.onChannelMessageRequested(body); break; // alias - case 'h': this.wsConnection.send('h'); break; // heartbeat response + case 'hb': this.onHeartbeat(body); break; } } + @bindThis + private onHeartbeat(data: JsonValue | undefined) { + if (!isJsonObject(data)) { + console.error('Received invalid heartbeat payload: ', data); + return; + } + this.sendMessageToWs('hb', data); + } + @bindThis private onBroadcastMessage(data: GlobalEvents['broadcast']['payload']) { this.sendMessageToWs(data.type, data.body);