【发布时间】:2016-04-01 23:32:40
【问题描述】:
我正在使用 NodeJS,发现 this code 实现了对套接字的原生支持,因为 NodeJS 默认不支持套接字。
所以我使用代码打开服务器(服务器正在等待...),现在对于客户端,我在桌面上使用了一些简单的html 文件,代码为like that,乍一看它失败了,但是当我稍微调试一下代码时,我发现我发现的 NodeJS 套接字代码需要 sec-websocket-key1 和 sec-websocket-key2,而我从我实现的客户端代码(in the plnkr)只得到 sec-websocket-key。
我查了一下,发现 that link 上面写着:
HTML5 WebSockets 使用的第一个协议是 草稿-ietf-hybi-thewebsocketprotocol-00 (HyBi 00)。一切都很好,直到 该协议已升级以解决一些安全问题。因此 在这些更改中,Sec-WebSocket-Key1 和 Sec-WebSocket-Key2 字段 已添加到客户端标头中。
基本上这解释了为什么我得到sec-websocket-key,我知道那篇文章也说(根据caniuse)只有2个浏览器支持最新的websockets协议,我用chrome和firefox测试过,两者都发送相同的@987654331 @...
- 我应该支持的真正协议是什么(是正确的),使用
web-socket-key1/2或只是sec-websocket-key的协议 - 哪些浏览器支持(如果应该支持的话)
sec-websocket-key1和sec-websocket-key2? - 我的客户端 Web Sockets 或服务器端是完全错误的吗?
- 是否有垫片可以解决问题?
【问题讨论】:
标签: javascript node.js html sockets