【发布时间】:2011-10-22 11:38:37
【问题描述】:
我正在尝试创建一个用 node.js 编写的 websocket 服务器
要让服务器正常工作,我需要获取字符串的 SHA1 哈希值。
我必须做的在Section 5.2.2 page 35 of the docs中解释。
注意:例如,如果
"Sec-WebSocket-Key"的值 客户端握手中的标头为"dGhlIHNhbXBsZSBub25jZQ==",服务器将附加字符串"258EAFA5-E914-47DA-95CA-C5AB0DC85B11"以形成 字符串"dGhlIHNhbXBsZSBub25jZQ==258EAFA5-E914-47DA-95CA-C5AB0DC85B11"。然后,服务器将获取该字符串的 SHA-1 哈希,给出值 0xb3 0x7a 0x4f 0x2c 0xc0 0x62 0x4f 0x16 0x90 0xf6 0x46 0x06 0xcf 0x38 0x59 0x45 0xb2 0xbe 0xc4 0xea。然后将该值进行 base64 编码,得到值"s3pPLMBiTxaQ9kYGzzhZRbK+xOo=",该值将被返回 在"Sec-WebSocket-Accept"标头中。
【问题讨论】:
-
我会强烈推荐使用优秀的 socket.io 库而不是自己滚动。这不仅经过了广泛的测试和修补,而且通过各种方法支持大多数浏览器(即使是没有 WebSocket API 的浏览器)。
-
未来访问者的一个很好的参考:stackoverflow.com/questions/9407892/…
标签: javascript node.js websocket