Socket.io: Como faço para restringir um cliente a usar apenas WebSockets como único transporte?

Criado em 6 set. 2014  ·  3Comentários  ·  Fonte: socketio/socket.io

Estou tentando dimensionar um processo socket.io para vários dynos no Heroku que não oferece roteamento de sessão fixa e queria contornar esse problema usando WebSockets como o único transporte. Existe alguma maneira de fazer isso com 1.1? Também curioso se alguém tiver alguma informação sobre quais seriam as desvantagens de fazer isso além de perder a compatibilidade do navegador?

Comentários muito úteis

AFAIK IE8 e IE9 não poderão usar websockets.
Para forçar seu cliente a usar apenas websocket, em seu código de cliente você pode usar algo como:

io.connect("http://seu.dominio.com", {transportes: ['websocket']});

Todos 3 comentários

AFAIK IE8 e IE9 não poderão usar websockets.
Para forçar seu cliente a usar apenas websocket, em seu código de cliente você pode usar algo como:

io.connect("http://seu.dominio.com", {transportes: ['websocket']});

Parece que isso ainda voltará a usar outros transportes se a conexão do Websocket falhar (ou talvez tente usar outros métodos de conexão primeiro)

@distracteddev não deveria estar usando nenhum outro transporte ao usar {transports: ['websocket']} . Algo (como saída de depuração) parece indicar o contrário?

Você provavelmente deve limitar os transportes apenas ao transporte WebSocket no servidor também, se suas conexões funcionarem apenas com eles.

Esta página foi útil?
0 / 5 - 0 avaliações