在我公司有100多辆车。每辆车都有Windows设备,通过3G连接到互联网上。
我的任务是编写一个应用程序,以便能够与这些车辆进行实时通信。服务器和客户端。
这是我必须注意的清单。
是否有适合这些要求的协议或服务器应用程序?
问候
巴罗
发布于 2012-10-25 15:52:11
只要使用HTTP,来自HTTP头的开销不会破坏带宽库。
客户端只需轮询服务器以获得最新消息。如果最新消息的ID差值大于客户端记录上一条消息的ID差,那么客户端可以直接请求它丢失的特定消息ID(可能是从被丢弃的客户端连接中丢失的)。真正需要的是一个通用的HTTP处理程序(ashx)或web服务(asmx)。
发布于 2012-10-25 16:02:54
对于这种通信场景,套接字通信将是最佳选择。为什么?
1)。它使用原始字节来实现。
2)。有连接通信和无连接通信的选项。
3)。.NET有一个丰富的API来实现套接字通信。
4)。如果结合使用Rx和/或TPL (异步等待),则可以以更好的方式处理。
最小带宽使用: TCP将添加更多的头字节到实际消息,然后UDP,因为TCP是连接(某种)通信套接字类型,也有内部检查和。UDP将是在3G上节省一些带宽的最佳选择。
对于连接性和消息传递的保证确认:我要说的是,选择完全由您或您的公司来选择该采用的方法。
TCP的优点:由于它是连接通信,一旦您失去了连接性,终端就可以了解断开连接的情况,并且可以再次进行连接,并且在消息传递方面更可靠。
UDP的优点:它的发送和遗忘协议,因此它不能保证任何可靠性或连接在构建,但由于发送的字节是昂贵的在您的情况下,使用UDP将是很好的选择,并使用某种消息协议来实现端到端的通信-请求/确认与响应机制。因此,可以手动完成接收和发送的连接和消息的确认。
https://stackoverflow.com/questions/13072377
复制相似问题