我目前正在考虑创建一个软实时手机网络应用程序,但是当我开始研究websockets时,我发现了大量关于在手机上丢失的websocket连接的恐怖故事:
WebSockets over a 3G connection
http://blog.hekkers.net/2012/12/09/websockets-and-mobile-network-operators/
这仍然可以被认为是一个问题吗?
相关地,我怀疑长轮询客户端可能是实现类似功能的好方法,但我想知道我可能遇到的移动特定问题。
到目前为止,我已经读到长轮询请求可能会对电池寿命产生相当大的影响。我还听说iOS以某种方式限制了与单个服务器的连接数量,这可能是一个问题。
您是否有人使用实时组件处理移动应用程序?如果你有,你遇到了什么挑战,你是如何克服它们的?
答案 0 :(得分:5)
我使用实时数据构建了几个websocket webapp,它们在iphone和移动设备上表现非常出色。 Websockets保持ping / pong连接以查看连接是否仍然存在。导致断线的事情:
考虑:
将一个简单的重新连接例程写入javascript的onclose部分,该部分尝试在一定时间后重新连接。
#include <vector>
#include <algorithm>
using namespace std;
template <typename T> T max_sub_array (vector<T> const & numbers)
{
T max_ending = 0; max_so_far = 0;
for(auto & number: numbers)
{
max_ending = max(0, max_ending + number);
max_so_far = max(max_so_far, max_ending);
}
return max_so_far;
}