Cloudflare DevelopersCD
Cloudflare Developers2y ago
17 replies
Elyo

Build a WebSocket server with WebSocket ...

Hi everyone
I can't get any error messages. I am trying to get my Durable Object working with Hono.

My route
route.get("/ws/:id", ...myController.getAllWS);


My controller
export const getAllWS = factory.createHandlers(
    durableObjectMiddleware,
    upgradeWebSocket(async (c) => {
         return await c.get("stub").fetch(c.req.raw);
    }),
);


My middleware:
export default async function durableObjectMiddleware(
    c: Context,
    next: Function,
) {
    const id = c.env.WEBSOCKET_MANAGER.idFromName("global");
    const stub = c.env.WEBSOCKET_MANAGER.get(id);
    c.set("stub", stub);
    await next();
}


The Durable Object is exactly the code from Cloudflare
https://developers.cloudflare.com/durable-objects/examples/websocket-hibernation-server/

In my Cloudflare dashboard, I can see the DO created.

I can connect to the websocket, but no message can be send/receive in the websocket.
webSocketMessage is never ever triggered, but if i close webSocketClose it does get triggered. I am clueless...
The expected result is to receive my message back
Cloudflare Docs
This example is similar to the Build a WebSocket server example, but uses the WebSocket Hibernation API. The WebSocket Hibernation API should be
Build a WebSocket server with WebSocket Hibernation · Cloudflare Du...
Was this page helpful?