参考https://www.npmjs.com/package/ws 和https://github.com/crowbartools/Firebot/issues/526
wss.on('connection', function (ws, req) { let location = url.parse(req.url, true); console.log('[WebSocketServer] connection: ' + location.href); ws.on('message', onMessage); ws.on('close', onClose); ws.on('error', onError); if (location.pathname !== '/:3000/ws/chat') { // close ws: ws.close(4000, 'Invalid URL'); } // check user: let user = parseUser(req); if (!user) { ws.close(4001, 'Invalid user'); } ws.user = user; ws.wss = wss; onConnection.apply(ws); });
通过加上第二个参数req,可以解决upgradeReq被remove的问题。另外输出发现location.pathname是‘/:3000/ws/chat’而不是‘/ws/chat’,遂也作了替换。
Sign in to make a reply
Hfer_酸酸_乳川
参考https://www.npmjs.com/package/ws 和https://github.com/crowbartools/Firebot/issues/526
通过加上第二个参数req,可以解决upgradeReq被remove的问题。另外输出发现location.pathname是‘/:3000/ws/chat’而不是‘/ws/chat’,遂也作了替换。