web-dev-qa-db-fra.com

Les adresses WebSocket peuvent-elles contenir des paramètres?

Est ws://myserver.com/path?param=1 une adresse WebSocket valide?

L'adresse http://myserver.com/path?param=1 (notez que c'est maintenant http et non ws) fonctionne très bien avec wscat , mais je ne peux pas le faire fonctionner sur le navigateur.

28

ws://myserver.com/path?param=1 est un URI WebSocket valide. Cependant, la façon dont votre application serveur WebSocket peut accéder au chemin d'accès et à la chaîne de requête varie en fonction de la structure de serveur WebSocket que vous utilisez.

Si vous utilisez Node.js einaros/ws bibliothèque, puis dans votre objet de connexion websocket aura le chemin complet avec la chaîne de requête à upgradeReq.url.

Par exemple ceci:

wss.on('connection', function(ws) {
    console.log("url: ", ws.upgradeReq.url);
};

imprimera url: /path?param=1 lorsque vous vous connectez à ws://myserver.com/path?param=1.

29
kanaka

Pour utiliser avec les derniers ws, le rappel de connexion a maintenant un autre argument - qui est req.

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