import WebSocket from 'ws';
export default defineWebSocketHandler({
open(peer) {
const backend = new WebSocket(peer.request.url);
const queue:string[] = [];
backend.on("open", () => {
console.log("WebSocket opened");
for(const msg of queue) {
backend.send(msg);
}
})
// forward backend messages → client
backend.on('message', (data) => peer.send(data));
peer.websocket.onmessage = (msg) => {
if(backend.readyState !== WebSocket.OPEN) {
queue.push(msg.data as string);
return;
}
console.log("<" + msg.data);
backend.send(msg.data);
}
backend.on('close', () => peer.close());
peer.websocket.onclose = () => backend.close()
},
});
import WebSocket from 'ws';
export default defineWebSocketHandler({
open(peer) {
const backend = new WebSocket(peer.request.url);
const queue:string[] = [];
backend.on("open", () => {
console.log("WebSocket opened");
for(const msg of queue) {
backend.send(msg);
}
})
// forward backend messages → client
backend.on('message', (data) => peer.send(data));
peer.websocket.onmessage = (msg) => {
if(backend.readyState !== WebSocket.OPEN) {
queue.push(msg.data as string);
return;
}
console.log("<" + msg.data);
backend.send(msg.data);
}
backend.on('close', () => peer.close());
peer.websocket.onclose = () => backend.close()
},
});