Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WebSocket版本之间的协议差异是什么?_Websocket_Protocols - Fatal编程技术网

WebSocket版本之间的协议差异是什么?

WebSocket版本之间的协议差异是什么?,websocket,protocols,Websocket,Protocols,各种WebSocket草案之间的协议差异是否有摘要 浏览器支持级别仍然是遍及地方,所以仅仅考虑RFC.< /P>是不够的。 显然,Sec WebSocket的版本发生了变化,我知道早期的格式有很大的不同。然而,我指的是协议中更微妙的变化。例如,在帧中,hybi-10(v8)建议将扩展有效负载长度存储为16/63,而不是RFC 6455(v13)中的16/64 那么:有任何地方的变化摘要吗 或者(如果我们忽略非常早期的草案和版本号),是否协议本质上是相同的,并且草案主要是对规范文本的更正?我不知道

各种WebSocket草案之间的协议差异是否有摘要

浏览器支持级别仍然是遍及地方,所以仅仅考虑RFC.< /P>是不够的。 显然,Sec WebSocket的版本发生了变化,我知道早期的格式有很大的不同。然而,我指的是协议中更微妙的变化。例如,在帧中,hybi-10(v8)建议将扩展有效负载长度存储为16/63,而不是RFC 6455(v13)中的16/64

那么:有任何地方的变化摘要吗


或者(如果我们忽略非常早期的草案和版本号),是否协议本质上是相同的,并且草案主要是对规范文本的更正?

我不知道当前使用的许多协议版本。我有一个websocket服务器,它支持Hixie-76和hybi-10到17(只是在Sec websocket版本中有所更改),可以对抗Safari(桌面+iOS)、Firefox和Chrome

(旧款)Hixie-76至少在与iOS设备通话时很有用

hybi-10以后的型号基本相同。我假设你的例子是,在hybi-10中,扩展有效载荷被广告为63位,这是一个打字错误,是当草稿从10快速移动到17位时所做的许多小更正之一

后来:编辑显示一些Safari版本实际上使用了Hixie-76。Wikipedia列出了哪些浏览器支持哪种协议

此外,IETF还提供了一个diff工具,可用于比较任何两个RFC草案规范。例如,要比较WebSocket草稿15和草稿17,请点击此处:

调整url1和url2地址以获得任意版本的差异。请注意,这将显示规范的文本差异,并且规范的大型更改通常在导线上没有相应差异的情况下发生。我建议在diff中搜索“协议概述”部分和“基本帧协议”部分,这两部分分别显示了标题摘要和帧图

有线协议中最大的差异出现在Hixie-76/HyBi-00(HyBi-00只是用于启动新系列的Hixie-76的一个副本)和HyBi-04(HyBi-17成为IETF RFC 6455)启动的其他HyBi系列之间。从Hixie系列到HyBi系列的一些主要变化:

  • 在Hixie-76协议中,在握手头之后但在实际数据帧之前发生了一种特殊的哈希握手
  • 在Hixie-76中,帧的前缀为0x00,后缀为0xff。没有办法确定帧的长度,除非一直接收/缓冲到帧的末尾。在HyBi系列中(HyBi-00之后),帧长度是前缀/头的一部分,没有后缀
  • HyBi系列支持有效负载中的UTF-8文本和二进制数据(Hixie仅支持UTF-8)。这由帧标头中的和操作码指示

添加特定变更;在
Sec WebSocketVersion
中,这也是我的结论;使用63意味着所有东西都有笨拙的对齐,这将是疯狂的。凉爽;我将尝试10到17的版本模拟,并添加显式的hybi-00支持。谢谢。事实上,有一个变化-看我的回答啊,很抱歉。我错过了这一点,因为我的(简单的)websocket服务器不使用origin头。好吧,规范比较工具是这里真正的赢家-让我有信心。干杯我清楚地意识到了非常不同的00;我想检查的是后期草稿之间的细微差异;我的回答更详细