From 493f6ca150dae884b10536e42beafe8bac78ef3d Mon Sep 17 00:00:00 2001 From: Zachary LeFevre Date: Tue, 21 Oct 2025 14:14:16 -0500 Subject: [PATCH] Update Hibernation Websocket Example This updates the example in several ways: - Update the message contents so they are not the same in all cases. - Remove closing WS connections from the sessions map --- .../examples/websocket-hibernation-server.mdx | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/content/docs/durable-objects/examples/websocket-hibernation-server.mdx b/src/content/docs/durable-objects/examples/websocket-hibernation-server.mdx index 72f68a16549ece6..5c0e26fb1821966 100644 --- a/src/content/docs/durable-objects/examples/websocket-hibernation-server.mdx +++ b/src/content/docs/durable-objects/examples/websocket-hibernation-server.mdx @@ -131,24 +131,25 @@ export class WebSocketHibernationServer extends DurableObject { // Upon receiving a message from the client, the server replies with the same message, the session ID of the connection, // and the total number of connections with the "[Durable Object]: " prefix - ws.send(`[Durable Object] message: ${message}, from: ${session.id}. Total connections: ${this.sessions.size}`); + ws.send(`[Durable Object] message: ${message}, from: ${session.id}, to: the initiating client. Total connections: ${this.sessions.size}`); // Send a message to all WebSocket connections, loop over all the connected WebSockets. this.sessions.forEach((attachment, connectedWs) => { - connectedWs.send(`[Durable Object] message: ${message}, from: ${session.id}. Total connections: ${this.sessions.size}`); + connectedWs.send(`[Durable Object] message: ${message}, from: ${session.id}, to: all clients. Total connections: ${this.sessions.size}`); }); // Send a message to all WebSocket connections except the connection (ws), // loop over all the connected WebSockets and filter out the connection (ws). this.sessions.forEach((attachment, connectedWs) => { if (connectedWs !== ws) { - connectedWs.send(`[Durable Object] message: ${message}, from: ${session.id}. Total connections: ${this.sessions.size}`); + connectedWs.send(`[Durable Object] message: ${message}, from: ${session.id}, to: all clients except the initiating client. Total connections: ${this.sessions.size}`); } }); } async webSocketClose(ws: WebSocket, code: number, reason: string, wasClean: boolean) { // If the client closes the connection, the runtime will invoke the webSocketClose() handler. + this.sessions.delete(ws); ws.close(code, 'Durable Object is closing WebSocket'); } }