Java Websockets - 因不同的选项而感到困惑

roc*_*oco 5 java serversocket websocket java-websocket

我一直致力于用 Java 编写 Web Socket 服务器,这一点让我困惑了一段时间。在 GitHub 上,有 TooTallNate 开发的这个库,它是“100% Java 中的准系统 WebSocket 客户端和服务器实现”: 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 消息,是否有一种最合适的选项?

Mad*_*apu 4

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

IETF 将其标准化为 RFC 6455。

您提供的三个链接(TooTallNate、Mozilla、Jetty)只是该 websocket 标准/协议的实现。

类似地,Netty 也有 Websocket 实现。

关于选择哪一个:

就像 HTTP 标准一样。

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

  • 实施效率如何?
  • 配置友好吗?
  • 消耗的内存/CPU
  • ETC

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