Linux Websocket协议版本8与13



我在flash中的websocket应用程序和jetty上的Java服务器上遇到了奇怪的问题。从某个时刻起,客户端已经开始打开版本8的连接,但服务器只支持13版本。

我真的不明白问题出在哪里,问题的根源在哪里。

WebSocket版本8是WebSocket的草案实现。(换句话说,WebSocket的非最终早期实验版本)

WebSocket版本13是WebSocket标准(RFC 6455)的最终版本。

有关更多详细信息,请参阅WebSocket版本的IANA注册表:https://www.iana.org/assignments/websocket/websocket.xml#version-数字

如果您看到客户端发送WebSocket版本8,那么这些客户端是旧的,并且还没有支持最终确定的WebSocket标准(版本13)。

Jetty项目参与了WebSocket标准的开发。Jetty的旧版本(特别是Jetty 7和Jetty 8)用于测试WebSocket规范中的各种讨论和实验,并一直支持Hixie-75(提出的WebSocket协议),直到版本13(ietf标准化的WebSockett协议)。正如预期的那样,对实验草案版本的支持保持在";实验性";,并且不进行维护。但是,您可以使用servlet上的minVersioninit参数在Jetty7和Jetty8中启用它们。

从Jetty9开始,WebSocket的所有实验草案版本都被删除了。仅支持版本13。

注意:有一个打开的bug可以删除Jetty 7和Jetty 8的实验草案-https://bugs.eclipse.org/bugs/show_bug.cgi?id=418140