2012-07-19 69 views
0

我试图让100个Android设备显示基于服务器参数的文本字符串。当服务器将文本从“Hello World”更改为“Everything Changed”时,我希望所有100个Android设备同时进行更新,并且在发生更改时立即进行更新。Android没有C2DM的Web服务的实时更新?

它运行在一个隔离的局域网上,因此C2DM不可行,并且每秒轮询似乎相当的流量(特别是如果有1000个设备以后)。对于如何从轮询转向推动或至少使这种可扩展性有什么建议?

我一直在考虑只保持连接打开,并且服务器只在它发生变化时才返回内容,但是担心超时问题和PHP处理100个并发连接的能力......任何指针或建议尝试?

回答

1

你不应该拉。如果您处于专用网络中,并且设备数量有限,则最好保持tcp套接字打开,并通过打开的套接字将数据从服务器发送到客户端。

但是你必须明白你在做什么。

因此,阅读以下内容:

1)了解多少个连接可以打开和是否足够满足您的需求 How many socket connections possible?

2)如果你有很多的设备,我的意思是超过千元,您可能在服务器端失败。要不失败,您必须阅读有关异步io http://en.wikipedia.org/wiki/Asynchronous_I/O和其他一些在网络中找到。 和php中的async io Can PHP asynchronously use sockets?