WebSocket地址可以携带参数吗?

时间:2013-06-25 15:22:19

标签: javascript html5 node.js websocket

ws://myserver.com/path?param=1是否是有效的WebSocket地址?

地址http://myserver.com/path?param=1(现在注意它http而不是ws)可以正常使用wscat,但我无法在浏览器上运行。

2 个答案:

答案 0 :(得分:29)

ws://myserver.com/path?param=1是一个有效的WebSocket URI。但是,WebSocket服务器应用程序访问路径和查询字符串的方式将根据您使用的WebSocket服务器框架而有所不同。

如果您使用的是Node.js einaros/ws库,那么在您的websocket连接对象中将包含upgradeReq.url处查询字符串的完整路径。

例如:

wss.on('connection', function(ws) {
    console.log("url: ", ws.upgradeReq.url);
};
当您连接到url: /path?param=1时,

会打印ws://myserver.com/path?param=1

答案 1 :(得分:3)

要使用最新的ws,连接回调现在有另一个参数 - 这是req。

wss.on("connection", (ws, req) => {
   console.log(`Conn Url ${req.url}`);
});