JavaScript的。 WebSocket服务器。 WebSocket握手期间出错:错误' Sec-WebSocket-Accept'标头值

时间:2016-11-07 11:21:14

标签: javascript node.js websocket base64

目前,我正在从事涉及WebSocket技术(Node.js服务器)的项目。我有一个非常普遍的问题(StackOverflow上有很多类似的问题)。 浏览器不接受我的Sec-WebSocket-Accept。它看起来像base64编码失败。 例如:

Sec-WebSocket-Key: Hel69aX+iCF5/Js4bATfRw==
Magic number appended: Hel69aX+iCF5/Js4bATfRw==258EAFA5-E914-47DA-95CA-C5AB0DC85B11
SHA-1: b549e61a292a87ce1110b880a0792de41e2d0803
base64: YjU0OWU2MWEyOTJhODdjZTExMTBiODgwYTA3OTJkZTQxZTJkMDgwMw==

以为我的脚本会发出错误的转换,但是我尝试过的任何编码器(base64,sha1)都会返回此值。

接下来,我尝试了一些分步Sec-WebSocket-Accept示例,但他们的base64与我得到的不同。它们实际上要短得多。

例如this one

base64(' e53e4cbf13f58b3e34bcba62de442cfe27c3682a')在该线程中返回5T5MvxP1iz40vLpi3kQs/ifDaCo=。我已经尝试过浏览器的btoa(' e53e4cbf13f58b3e34bcba62de442cfe27c3682a')和一些在线base64编码器,并且所有这些编码器都会返回' ZTUzZTRjYmYxM2Y1OGIzZTM0YmNiYTYyZGU0NDJjZmYyN2MzNjgyYQ =='。

我错过了什么?

谢谢!

解决方案更新:标记为重复原始问题的问题解释了我的问题的原因。但是gre_gor在评论部分提供了真正的解决方案。

0 个答案:

没有答案