通信协议设计请教?
需求:
测试人的身体情况。
终端(比如手机),可通过一些附着于人体的传感器来采集体温,血压等信息。然后把这些信息传给服务器,由服务器分析这些数据后,再把身体状况传回。
1、实时性要求很高,比如30s出一次结果。
2、需要有扩展能力,比如以后会加入其他传感器(比如脉搏,记步计等)。通信协议不可大变
3、数据包尽可能小。
4、安全性要求高。
问题:
1、我请想问一下这样的通信协议该如何设计?
2、数据类型是用二进制好还是用xml好?
3、传输层我想采用udp方式实现,因为较快,而且就算数据没有准确送达,也没必要重发,因为不久就会有新的数据过来了,重发的话也只是之前的身体状况?
暂时就想到这么多,还望有协议开发经验的朋友多多帮忙,谢谢!
[解决办法]
通讯时,手机可以多次向服务器发信息,最后发检测结束信息
可以考虑xml,扩展性很强
[解决办法]
数据结构不要用 xml ,效率低 ,再说,就算是需要扩展也只是在原结构的下面添加成员,很容易,
tcp或udp不是关键,总之交互过程一定是 请求+应答
[解决办法]
这个很简单,功能就那么一个。每30s发送一次个人身体的状况,然后根据服务器的分析反馈给用户或者记录。
至于扩展那个 只是加个字段的问题。实际上数据类型方面,没有做过传二进制我就不说了。而且一直用的 socket 传输,并没有出现什么问题。
[解决办法]
tcp/ip是有链接的,udp是无连接的,通信协议里的内
xml吧,虽然速度方面是个欠缺,但是我猜你数据量不大吧
udp你收不到就抛弃了,不会再给你发送
要是想不掉线效果,通常可以发送心跳包确认
[解决办法]