Java Websockets - 被不同的选项困惑

问题描述:

我一直在用Java编写一个Web Socket服务器,这一点让我困惑了一会儿。在GitHub上有TooTallNate的这个库,它是“100%Java中的准系统WebSocket客户端和服务器实现”:https://github.com/TooTallNate/Java-WebSocketJava Websockets - 被不同的选项困惑

它有很多明星,并且正在积极开发。

但是,似乎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的低延迟高频发送消息,是否有一种选择最合适?

+0

另请参见[Undertow](http://undertow.io/undertow-docs/undertow-docs-1.4.0/index.html#websockets)和[Grizzly](https://javaee.github.io/ grizzly/websockets.html)(如果包含Scala,JVM上还有更多,也可以使用vertx ...)。但那不是S.O.材料: - / –

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

这是由IETF标准化为RFC 6455.

您提供的三通(TooTallNate,Mozilla的,码头),是正义的WebSocket的标准/协议的执行情况。

同样Netty也有Websocket实现。

至于选择哪一个:

看它喜欢,HTTP标准。

所有的Web服务器(Tomcat的,weblogic的,码头,的Apache HTTP等)实现相同的HTTP标准,而是选择哪一种取决于许多因素,如:

  • 效率如何执行?
  • 配置友好吗?
  • 内存/ CPU消耗

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