Websockets可以在手机上工作吗?



我目前正在考虑创建一个软实时手机web应用程序,但是当我开始研究websockets时,我发现了一堆关于websocket连接在手机上脱落的可怕故事:

基于3G连接的WebSockets

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

这还能被认为是一个问题吗?

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

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

你们中有人开发过带有实时组件的移动应用程序吗?如果有过,你遇到过哪些挑战,你是如何克服的?

我用实时数据构建了几个websocket web应用程序,它们在iPhone和移动设备上表现得非常好。Websockets使用ping/pong连接来查看连接是否仍然存在。导致断开连接的事情:

  • 如果你关闭应用程序,那么连接将被丢弃(在iOS网络应用中)。
  • 如果网络宕机(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
     }
    

相关内容

  • 没有找到相关文章

最新更新