Java Websockets - 被不同的选项搞糊涂了

Java Websockets - confused by the different options

我一直致力于在 Java 中编写 Web Socket 服务器,这一点让我困惑了一段时间。 GitHub 上有一个 TooTallNate 的库,它是 "barebones WebSocket client and server implementation in 100% Java":https://github.com/TooTallNate/Java-WebSocket

它拥有大量的星星,并且正在积极开发中。

但似乎 Java 已经在主库中具有 websocket 功能? https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API/Writing_a_WebSocket_server_in_Java

还有 Jetty 的 WebSocket 之类的东西:http://www.eclipse.org/jetty/documentation/9.4.x/jetty-websocket-server-api.html

还有 Netty,它似乎也有 WebSocket 的东西。

那么这些到底有什么区别呢?这是一个简单的问题吗?还是性能?或者它们是完全不同的东西?如果我需要低延迟高频发送 5-10 kb 的消息,有没有最合适的选项?

WebSocket 是一种通过单个传输控制协议 (TCP) 套接字提供双向全双工通信通道的技术。

IETF 将其标准化为 RFC 6455。

您提供的三个链接(TooTallNate、Mozilla、Jetty)只是该 websocket 的实现 standards/protocol。

同样Netty也有Websocket实现。

关于选择哪一个:

看起来像,HTTP 标准。

所有 Web 服务器(Tomcat、weblogic、Jetty、Apache HTTP 等)都实现相同的 HTTP 标准,但选择哪一个取决于许多因素,例如:

  • 实施效率如何?
  • 配置友好吗?
  • Memory/CPU 消耗

因此您可能需要进行一些性能测试,看看哪一个适合您的要求。