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

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

WebSockets over a 3G connection

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

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

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

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

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

解决方法

我使用实时数据构建了几个websocket webapp,它们在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
}

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...