Java 用于与 IoT 设备通信的 TCP 服务器

Java TCP server for communicating with an IoT device

我开发了一个嵌入式系统,可以将数据作为 TCP 请求发送到服务器。由于其数据开销,我不能使用更频繁的 HTTP 请求。更短的包裹长度将导致更少的能源消耗和更少的通信费用。

服务器必须侦听一个特殊端口,从设备获取数据并存储在 table 中。

正如我所探索的那样,Java servlets + Apache Tomcat 是一种流行的解决方案,但在这种情况下不应使用,因为 Java servlet 更合适table 用于基于 HTTP 的连接。

这种通信有更好的解决方案吗?

请看Sockets。它们在应用层 TCP/IP 模型上,提供可靠的双向通信,没有数据开销。但是,您将需要设计一个微型协议来满足您的大部分需求。

很可能这会满足您的需求,但如果您决定采用 HTTP 解决方案,请记住 Websockets 这是一个有趣的解决方案,将减少 HTTP 协议的开销(但他们赢了' 消除它,开销将保持在 2-10 字节左右。)。不幸的是,Java SE 并未内置提供对 Websockets 的支持,因此您需要使用外部库。

PS:两个选项都支持通过 TLS 加密,但我没有提到它,因为它增加了明显的开销(至少在连接初始化期间)