Sails/Socket.io websocket被阻止-如何后退?

Sails/Socket.io websocket被阻止-如何后退?,websocket,socket.io,sails.js,Websocket,Socket.io,Sails.js,我有一个启用了websocket和轮询传输的sails.js/socket.io聊天应用程序。在我的组织中,我们有一个代理/防火墙,它阻止与ws://协议的连接 当我在此环境中运行应用程序时,我可以看到sails应用程序正在尝试重新连接到websocket,输出如下: WebSocket连接到 'ws://…/socket.io/?\uuu-sails\u-io\u-sdk\u-version=0.11.0&\uu-sails\u-io\u-sdk\u-platform=browser&\uu-

我有一个启用了websocket和轮询传输的sails.js/socket.io聊天应用程序。在我的组织中,我们有一个代理/防火墙,它阻止与ws://协议的连接

当我在此环境中运行应用程序时,我可以看到sails应用程序正在尝试重新连接到websocket,输出如下:

WebSocket连接到 'ws://…/socket.io/?\uuu-sails\u-io\u-sdk\u-version=0.11.0&\uu-sails\u-io\u-sdk\u-platform=browser&\uu-sails\u-io\u-sdk\u-language=javascript&EIO=3&transport=websocket'失败: 在建立连接之前关闭WebSocket。 sails.io.js:143
套接字正在尝试重新连接到Sails。。。 -|>-(尝试#11

如何使应用程序在第三次尝试后回退到轮询传输

更新: 我刚刚在socket.io博客上发现了以下内容:

IO从不认为WebSocket可以正常工作,因为在 练习——很可能不会。相反,它建立了 立即与XHR或JSONP建立连接,然后尝试 升级到WebSocket的连接


此外,所描述的条件一次只发生一次,大多数情况下,它在轮询时工作正常。看起来sails应用程序有时会跳过XHR连接并立即尝试WebSocket。

结果表明,我需要启用会话以使轮询正常工作,因此这可能是我的问题的原因。

我在Heroku上部署时也遇到了同样的问题,显然他无法很好地进行轮询

我通过强制websocket传输解决了这个问题

在配置/套接字中:

transports: ["websocket"]
在sails.io.js之后立即添加这一行。因为此文件在管道中,所以我创建了一个新文件来放置脚本:

io.sails.transports=['websocket'];
有关此链接的更多详细信息:


你好。从我的问题中可以明显看出,我不能使用WebSocket,因此强制使用WebSocket并不是解决方案。关键是要避免传输问题,在您的情况下,强制传输轮询应该会有所帮助。感谢这一点,但我仍然不想强制传输,我只希望它在某些用户无法使用的情况下返回。