2013-06-25 17 views
19

Czy ws://myserver.com/path?param=1 jest prawidłowym adresem WebSocket?Czy adresy WebSocket mogą przenosić parametry?

Adres http://myserver.com/path?param=1 (zauważ, że jest teraz http, a nie ws) działa dobrze z wscat, ale nie mogę uruchomić go w przeglądarce.

+1

adres URL może być dowolny. – dandavis

+0

Dlaczego próbujesz uzyskać dostęp do adresu WebSocket za pomocą schematu 'http: '? – apsillers

+0

@appillers Nie byłem i byłem zaskoczony, że wscat pozwolił mi .. –

Odpowiedz

22

ws://myserver.com/path?param=1 jest prawidłowym identyfikatorem URI WebSocket. Jednak sposób, w jaki aplikacja serwera WebSocket może uzyskać dostęp do ścieżki i łańcucha zapytania, będzie różna w zależności od tego, z jakiego serwera WebSocket korzystasz.

Jeśli używasz biblioteki Node.js einaros/ws, to w twoim obiekcie połączenia z internetem będzie miała pełną ścieżkę z łańcuchem zapytań pod numerem upgradeReq.url.

Na przykład w ten sposób:

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

wypisze url: /path?param=1 po podłączeniu do ws://myserver.com/path?param=1.

+0

jak uzyskać przekazany parametr na stronie .jsp? –

+4

notka: możesz następnie [parsować URL] (http://www.codingdefined.com/2014/11/how-to-parse-urls-in-nodejs.html) używając ['url.parse() '] (https://nodejs.org/docs/latest/api/url.html#url_url_parsing) aktualizacja –

+3

: właściwość upgradeReq została usunięta. patrz https://github.com/websockets/ws/pull/1099 – Kuofp

Powiązane problemy