我有一个使用最新socket.io的应用程序。在使用最新iOS的iPad上,我注意到所选的传输是xhr-polling。我认为websockets在移动游猎中完全supported。
出于好奇,我想知道为什么选择xhr-polling,当该平台上支持websockets?
答案 0 :(得分:0)
here的答案。
Socket.IO从不认为WebSocket会起作用,因为在实践中它很可能不会。相反,它立即与XHR或JSONP建立连接,然后尝试升级到WebSocket的连接。与依赖超时的后备方法相比,这意味着您的用户都不会有降级的体验。
另外,从Offical Socket.io GitHub页面上的README:
Socket.IO不是WebSocket实现。尽管Socket.IO确实在可能的情况下使用WebSocket作为传输,但它会为每个数据包添加一些元数据:数据包类型,命名空间和需要消息确认时的确认ID。