【发布时间】:2015-11-20 02:56:28
【问题描述】:
我有一个启用了 websocket 和轮询传输的sails.js / socket.io 聊天应用程序。在我的组织中,我们有一个代理/防火墙阻止与 ws:// 协议的连接。
当我在这个环境中运行应用程序时,我可以看到 Sails 应用程序尝试重新连接到 websocket,输出如下:
WebSocket 连接到 'ws://.../socket.io/?__sails_io_sdk_version=0.11.0&__sails_io_sdk_platform=browser&__sails_io_sdk_language=javascript&EIO=3&transport=websocket' 失败: WebSocket 在连接建立之前关闭。 Sails.io.js:143
Socket 正在尝试重新连接到 Sails... -|>-(尝试 #11)
如何让应用程序在第三次尝试后回退到轮询传输?
更新: 我刚刚在 socket.io 博客上找到了这个:
Socket.IO 从不假设 WebSocket 会正常工作,因为在 练习很有可能不会。相反,它建立 立即与 XHR 或 JSONP 建立连接,然后尝试 升级到 WebSocket 的连接。
此外,所描述的条件一次只发生一次,大多数情况下轮询都可以正常工作。看起来sails 应用程序有时会跳过XHR 连接并立即尝试websockets。
【问题讨论】:
标签: websocket socket.io sails.js