我在服务器端写了这个:
var engine = require('engine.io'),
server = engine.listen(49157, {
transports: [ 'polling', 'websocket' ]
});
我写了这个客户端:
var socket = eio('ws://my.net:49157', {
transports: [ 'websocket', 'polling' ]
});
它永远不会成功连接!只需 1 次尝试然后回调错误。
它应该在失败时切换协议(从'websocket'
到)。'polling'
为什么不发生协议切换?我们怎样才能使这种转换工作?
详情:
当我transports
在服务器和客户端上使用相同的值时,它可以正常工作;即连接良好且快速且仅当 时才基于 websocket transports[0x0] === 'websocket'
,并且连接也良好且仅当 时才基于轮询transports[0x0] === 'polling'
。
一旦连接失败,就不会使用备用传输重试。
使用 engine.io 1.5.4。