Websockets可以在移动电话上工作吗?

Cha*_*lie 9 mobile comet long-polling websocket ios

我目前正在考虑创建一个软实时移动电话webapp,但是当我开始研究websockets时,我发现了大量关于在移动电话上丢弃的websocket连接的恐怖故事:

通过3G连接的WebSocket

http://blog.hekkers.net/2012/12/09/websockets-and-mobile-network-operators/

这仍然可以被认为是一个问题吗?

相关地,我怀疑长轮询客户端可能是实现类似功能的好方法,但我想知道我可能遇到的移动特定问题.

到目前为止,我已经读到长轮询请求可能会对电池寿命产生相当大的影响.我还听说iOS以某种方式限制了对单个服务器的连接数量,这可能是个问题.

有没有人在使用实时组件的移动应用程序上工作?如果你有,你遇到了什么挑战,你是如何克服它们的?

Ent*_*ter 6

我用实时数据构建了几个websocket webapp,它们在iPhone和移动设备上的表现都非常好。Websocket保持ping / pong连接,以查看该连接是否仍然有效。造成断线的原因:

  • 如果您关闭应用程序,则连接将被断开(在iOS webapps上)。
  • 如果网络确实出现故障(wifi / 3g / 4g),您将被丢弃,并且无法恢复在该中断时间内发送的任何内容。

注意事项:

  • 在您的javascript的onclose部分中编写一个简单的重新连接例程,该例程会在一定秒数后尝试重新连接。

    function connect(){
        websocket = new WebSocket("wss://myws:5020");
        websocket.onclose=function(event){
            console.log(event);
            setTimeout(connect,5000); //re-connect after 5 seconds
            //..and so on
    }
    
    Run Code Online (Sandbox Code Playgroud)