Socket.io: Wie schränke ich einen Client so ein, dass er nur WebSockets als einzigen Transport verwendet?

Erstellt am 6. Sept. 2014  ·  3Kommentare  ·  Quelle: socketio/socket.io

Ich versuche, einen socket.io-Prozess auf mehrere Dynos auf Heroku zu skalieren, der kein Sticky-Session-Routing bietet, und wollte dieses Problem umgehen, indem ich WebSockets als einzigen Transport verwende. Gibt es eine Möglichkeit, dies mit 1.1 zu tun? Auch neugierig, ob jemand Informationen darüber hat, welche Nachteile dies haben würde, außer dass die Browserkompatibilität verloren geht?

Hilfreichster Kommentar

AFAIK IE8 und IE9 können keine Websockets verwenden.
Um Ihren Client zu zwingen, nur Websocket zu verwenden, könnten Sie in Ihrem Client-Code Folgendes verwenden:

io.connect("http://ihre.domain.com", {transports: ['websocket']});

Alle 3 Kommentare

AFAIK IE8 und IE9 können keine Websockets verwenden.
Um Ihren Client zu zwingen, nur Websocket zu verwenden, könnten Sie in Ihrem Client-Code Folgendes verwenden:

io.connect("http://ihre.domain.com", {transports: ['websocket']});

Scheint so, als würde dies immer noch auf die Verwendung anderer Transporte zurückgreifen, wenn die Websocket-Verbindung fehlschlägt (oder vielleicht versucht es zuerst, andere Verbindungsmethoden zu verwenden).

@distracteddev sollte keine anderen Transporte verwenden, wenn {transports: ['websocket']} verwendet wird. Scheint etwas (wie die Debug-Ausgabe) auf etwas anderes hinzuweisen?

Sie sollten die Transporte wahrscheinlich auch auf den WebSocket-Transport auf dem Server beschränken, wenn Ihre Verbindungen nur mit ihnen funktionieren.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen