Q:

Can WebSocket addresses carry parameters?

Is ws://myserver.com/path?param=1 a valid WebSocket address ?
The address http://myserver.com/path?param=1 (notice it's now http and not ws) works fine with wscat, but I can't get it working on the browser.

A:

ws://myserver.com/path?param=1 is a valid WebSocket URI. However, the way that your WebSocket server application can access the path and query string will differ depending on what WebSocket server framework you are using.
If you are using the Node.js einaros/ws library, then in your websocket connection object will have the full path with the query string at upgradeReq.url.
For example this:
wss.on('connection', function(ws) {
    console.log("url: ", ws.upgradeReq.url);
};

will print url: /path?param=1 when you connect to ws://myserver.com/path?param=1.

A:

To use with latest ws, the connection callback now has another argument - which is req. 
wss.on("connection", (ws, req) => {
   console.log(`Conn Url ${req.url}`);
});

