【发布时间】:2013-05-25 18:07:54
【问题描述】:
我正在开展一个项目,该项目涉及在各种互联网连接设备(例如电话、计算机、家庭自动化设备等)上触发操作。有哪些技术/一般操作可用于连接此类设备?根据我有限的知识,我可以想到所有设备的持续轮询,或者使用长时间的 HTTP 连接(我相信这与 Facebook 的通知方式类似)。
我还有什么其他选择?有哪些框架?从服务器想要联系设备到实际联系设备的时间,哪个选项最好?哪个选项最能延长设备的电池寿命?
【问题讨论】:
我正在开展一个项目,该项目涉及在各种互联网连接设备(例如电话、计算机、家庭自动化设备等)上触发操作。有哪些技术/一般操作可用于连接此类设备?根据我有限的知识,我可以想到所有设备的持续轮询,或者使用长时间的 HTTP 连接(我相信这与 Facebook 的通知方式类似)。
我还有什么其他选择?有哪些框架?从服务器想要联系设备到实际联系设备的时间,哪个选项最好?哪个选项最能延长设备的电池寿命?
【问题讨论】:
就电池寿命而言,没有什么能比普通 TCP 套接字连接更好的了。如果您可以通过单个连接完成所有设备的轮询,那么除了每 x 秒几个字节的 keepalive 数据包(您可能应该在 TCP 堆栈中启用或作为协议的一部分生成)之外,几乎没有开销。与 Apple 用于 iOS 通知的类似。
如果您处于套接字通信可能被防火墙阻止的环境中,我会选择带有长轮询后备的 websockets(您在问题中提到)。结合代理支持,这应该能够轻松穿越任何防火墙。
【讨论】: