我正在开展一个项目,涉及触发各种互联网连接设备上的操作,如手机,电脑,家庭自动化设备等。有哪些技术/一般操作可以连接这样的设备?根据我的有限知识,我可以想到所有设备的持续轮询,或者使用长时间的HTTP连接(我相信这是Facebook发布通知的方式)。
我还有其他选择吗?那里有什么框架?从服务器想要联系设备到实际联系设备的时间,哪个选项最好?哪种选择对设备的电池寿命最容易?
答案 0 :(得分:1)
对于电池续航时间来说,没有什么比普通的TCP套接字连接更好了。如果你可以通过单个连接进行所有设备的轮询,那么对于keepalive数据包(除了你可能应该在TCP堆栈中启用或作为协议的一部分生成),每隔x秒几个字节就会有很少的开销。与苹果公司用于iOS通知的方式类似。
如果您处于可能被防火墙阻止套接字通信的环境中,我会选择带有长轮询后备的websockets(您在问题中提到)。结合代理支持,这应该能够遍历任何防火墙而不会出现太多复杂问题。