fix(cli): use async broker creation in journal server
Use `AedesFactory.createBroker()` instead of the constructor to ensure persistence is properly initialized before handling connections.
This commit is contained in:
parent
98c4a195e8
commit
6b5fcdc051
|
|
@ -102,23 +102,23 @@ export async function createJournalServer(
|
||||||
|
|
||||||
// ---- MQTT Broker ----
|
// ---- MQTT Broker ----
|
||||||
const { Aedes: AedesFactory } = await import("aedes");
|
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) ----
|
// ---- WebSocket server (attached to the existing HTTP server) ----
|
||||||
// Pattern from aedes docs: pass { server } to WSS, use 'connection' event
|
// Pattern from aedes docs: pass { server } to WSS, use 'connection' event
|
||||||
const wss = new WebSocketServer({ server: httpServer });
|
const wss = new WebSocketServer({ server: httpServer });
|
||||||
|
|
||||||
wss.on("connection", (ws, req) => {
|
wss.on("connection", (ws, req) => {
|
||||||
console.log(`[journal] ws connected from ${req.socket.remoteAddress}`);
|
|
||||||
const stream = createWebSocketStream(ws);
|
const stream = createWebSocketStream(ws);
|
||||||
broker.handle(stream, req);
|
broker.handle(stream, req);
|
||||||
});
|
});
|
||||||
|
|
||||||
broker.on("client", (client: import("aedes").Client) => {
|
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) => {
|
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) ----
|
// ---- Persistence (internal subscribe, no separate MQTT client) ----
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue