import { Hono } from "hono";
import { createBunWebSocket } from "hono/bun";
import { WSContext } from "hono/ws";
const { upgradeWebSocket, websocket } = createBunWebSocket();
const wsApp = new Hono();
const userSockets = new Map<string, WSContext>();
wsApp.get(
"/ws/:userId",
upgradeWebSocket((c) => {
const userId = c.req.param("userId");
return {
onOpen(event, ws) {
userSockets.set(userId, ws);
console.log(`WebSocket connection opened for user ${userId}`);
},
onMessage(event, ws) {
const message = JSON.parse(event.data.toString());
if (message.type === "checkEmailVerified") {
// ---
}
console.log(message);
ws.send("hi");
},
onClose: () => {
userSockets.delete(userId);
console.log(`WebSocket connection closed for user ${userId}`);
},
};
})
);
export default wsApp;
import { Hono } from "hono";
import { createBunWebSocket } from "hono/bun";
import { WSContext } from "hono/ws";
const { upgradeWebSocket, websocket } = createBunWebSocket();
const wsApp = new Hono();
const userSockets = new Map<string, WSContext>();
wsApp.get(
"/ws/:userId",
upgradeWebSocket((c) => {
const userId = c.req.param("userId");
return {
onOpen(event, ws) {
userSockets.set(userId, ws);
console.log(`WebSocket connection opened for user ${userId}`);
},
onMessage(event, ws) {
const message = JSON.parse(event.data.toString());
if (message.type === "checkEmailVerified") {
// ---
}
console.log(message);
ws.send("hi");
},
onClose: () => {
userSockets.delete(userId);
console.log(`WebSocket connection closed for user ${userId}`);
},
};
})
);
export default wsApp;