Android上的Sec-WebSocket-Key索引错误

时间:2013-12-14 11:23:33

标签: php android html5 websocket

我正在尝试用php实现WebSocket。在我的台式电脑上它工作正常。但是当我尝试在Android设备上打开我的网站时。我的服务器实现在握手时给出了以下错误。

  

未定义的索引:Sec-WebSocket-Key

然后我检查了数值。当我使用台式计算机浏览器连接到网站时,Header在标头中包含Sec-WebSocket-Key索引。但是当我从Android设备连接到网站时,Header包含Sec-WebSocket-Key1和Sec-WebSocket-Key2,但没有Sec-WebSocket-Key。因此,它抛出异常。这个问题有什么解决方案吗?我需要两个websokcet实现,一个用于移动,一个用于桌面吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

Sec-WebSocket-Key1Sec-WebSocket-Key2来自websocket提案的早期实验草稿。

http://tools.ietf.org/html/draft-hixie-thewebsocketprotocol-76#section-8.4

这意味着您的Android设备(无论是浏览器还是某些websocket库)不支持最终RFC6455 WebSocket标准。

要知道您的Android设备正在使用的版本......

  • 查找Sec-WebSocket-Version标题,如果找到,那就是您的版本。
    • 版本13是RFC-6455(最终规范)
  • 查找Sec-WebSocket-Draft标题,如果找到,那就是您的草稿(非最终版)。
  • 这两个都没有,你有一个超级早期的草案,可能是hixie-75hixie-76(因为那些是第一个常用的websocket规范)

版本号在IANA WebSocket版本号注册表中注册。 https://www.iana.org/assignments/websocket/websocket.xml