我已经开发了一个嵌入式系统,该系统可以将数据作为TCP请求发送到服务器。由于它的数据开销,我不能使用频率更高的HTTP请求。较短的包装长度将导致较少的能耗和通讯费用。
服务器必须侦听特殊端口,从设备获取数据并存储在表中。
正如我所探索的那样,Java servlet + Apache Tomcat是一种流行的解决方案,但在这种情况下不应该使用,因为Java servlet更适合基于HTTP的连接。
对于这种交流方式是否有更好的解决方案?
答案 0 :(得分:1)
请查看Sockets。它们位于应用程序层TCP / IP模型上,提供可靠的双向通信,而没有数据开销。但是,您将需要设计一个很小的协议来满足您的很多通信需求。
这很可能满足您的需求,但是如果您决定使用HTTP解决方案,请记住Websockets,这是一个有趣的解决方案,它将减少HTTP协议的开销(但它们不会消除它,开销将保持在2-10字节左右。)不幸的是,Java SE没有内置提供对Websockets的支持,因此您将需要使用一个外部库。
PS:这两个选项都支持基于TLS的加密,但我没有提到它,因为它增加了明显的开销(至少在连接初始化期间)