diff --git a/src/cli/journal.ts b/src/cli/journal.ts index 4809196..e990a31 100644 --- a/src/cli/journal.ts +++ b/src/cli/journal.ts @@ -102,23 +102,23 @@ export async function createJournalServer( // ---- MQTT Broker ---- const { Aedes: AedesFactory } = await import("aedes"); - const broker = new AedesFactory(); + // aedes requires listen() to initialize persistence before handling connections. + const broker = await AedesFactory.createBroker(); // ---- WebSocket server (attached to the existing HTTP server) ---- // Pattern from aedes docs: pass { server } to WSS, use 'connection' event const wss = new WebSocketServer({ server: httpServer }); wss.on("connection", (ws, req) => { - console.log(`[journal] ws connected from ${req.socket.remoteAddress}`); const stream = createWebSocketStream(ws); broker.handle(stream, req); }); broker.on("client", (client: import("aedes").Client) => { - console.log(`[journal] mqtt client ready: ${client.id}`); + console.log(`[journal] client ready: ${client.id}`); }); broker.on("clientDisconnect", (client: import("aedes").Client) => { - console.log(`[journal] mqtt client disconnected: ${client.id}`); + console.log(`[journal] client disconnected: ${client.id}`); }); // ---- Persistence (internal subscribe, no separate MQTT client) ----