我现在正在开展与远程汽车管理相关的项目。
我们有一些设备能够启动/停止汽车引擎,提供GPS坐标,检查门锁状态等。此设备已安装SIM卡。
第二方是服务器,它应该与设备通信,并允许消费者通过iPhone,机器人和WM7手机管理他们的汽车。
现在我的主要问题是应该为设备和服务器之间的通信定义哪些技术要求。
有人知道有关于此类数据传输的标准设计模式的书籍或文章吗?
下面是一个让我讨厌的问题的例子
我们需要向设备发送一些请求(例如“启动汽车”或“给我一个里程”)。为了提供它,服务器应该有一个地址,它应该发送这个请求。
如果我理解正确,有以下方法可以做到:
也许这里有人有类似的专业知识,可以在我应该移动的地方提出建议吗?
答案 0 :(得分:2)
根据这些principles
您可以保持TCP连接,以降低连接成本。那么漫长的投票成本是最低的。
您可以查看ZeroMQ,它似乎是您项目的合适的发布/订阅服务器
要求挂起命令的消息和来自服务器的空响应(将超过99.9%的会话)可以减少为每个请求一个字节,每个响应另一个。所以每十秒进行一次民意测验,我们有:
(20字节TCP成帧)+ 1个字节/消息*(1个请求+ 1个响应)* 6个消息/ 1分钟* 60分钟/小时* 720小时/月= 10.8Mb 每个月需要使用长轮询
现在,您添加了从服务器向设备发送用户命令的成本(与长轮询消息相比,它们相对较少):
每天支持用户命令1千字节/消息*(1个请求+ 1个响应)* 20个消息/天* 30天/月= 1.2Mb
最后,您必须决定要收集哪些数据-GPS,门传感器等,以及-1分钟,10分钟,每小时等等 - 总计长期投票费用的频率 =让我们说 12MB