Discuss / JavaScript / 关于upgradeReq的问题

关于upgradeReq的问题

Topic source

参考https://www.npmjs.com/package/wshttps://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’,遂也作了替换。


  • 1

Reply