diff --git a/src/networking/messageGenerators.ts b/src/networking/messageGenerators.ts index 86b9d35..e7e86eb 100644 --- a/src/networking/messageGenerators.ts +++ b/src/networking/messageGenerators.ts @@ -49,6 +49,14 @@ export function requestFilenames(): Message { }; } +export function ping(): Message { + return { + jsonrpc: "2.0", + method: "ping", + id: messageCounter++, + }; +} + function addLeadingSlash(path: string): string { const slashes = path.match("/"); if (slashes) return `/${path}`; diff --git a/src/networking/webSocket.ts b/src/networking/webSocket.ts index 9f26b17..ae39c79 100644 --- a/src/networking/webSocket.ts +++ b/src/networking/webSocket.ts @@ -4,6 +4,7 @@ import { config } from "../config.js"; import { EventType } from "../eventTypes.js"; import { Message } from "../interfaces.js"; import { messageTracker } from "./messageTracker.js"; +import { ping } from "./messageGenerators.js"; export function setupSocket(signaller: Signal) { const wss = new WebSocketServer({ port: config.get("port") }); @@ -23,6 +24,10 @@ export function setupSocket(signaller: Signal) { }); signaller.trigger(EventType.ConnectionMade); + + setInterval(() => { + sendMessage(ping()); + }, 10000); }); return wss;