Java Websockets - 被不同的选项所困惑

时间:2017-07-02 05:12:36

标签: java websocket serversocket 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消息的低延迟高频发送,是否有一个最合适的选项?

1 个答案:

答案 0 :(得分:3)

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

这由IETF标准化为RFC 6455。

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

同样,Netty也有Websocket实现。

选择哪一个:

看看它就像HTTP标准。

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

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

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