#!/usr/bin/env node const net=require("net"); const WebSocket=require("uws"); const PORT=29546; const upstream={ host: "localhost", port: 29536 }; const server=new WebSocket.Server({port:PORT},()=>{ console.log(`Listening for websocket http requests on port ${PORT}`); }); server.on("connection",(sock)=>{ let netconn=null; let buffer=[]; netconn=net.connect(upstream.port,upstream.host,()=>{ for(const item of buffer){ netconn.write(item); } buffer=[]; }); netconn.on("close",()=>{ sock.close(); }); netconn.on("data",(data)=>{ sock.send(data); }); sock.on("close",()=>{ netconn.end(); }); sock.on("message",(data)=>{ if(netconn.connecting)buffer.push(data); else netconn.write(data); }); }); process.on("SIGINT",()=>{ console.log("Closing websocket server..."); server.close(); });