0

我正在尝试调用外部 websocket 服务器,但它不起作用,我有错误:nonzero hanshake。

我在 ac# 应用程序中使用 superwebsocket 的客户端。

我将(使用wireShark)我发送的内容与一个工作的例子(但在javascript中)进行了比较,我发现唯一的区别是标题中字段的排名。

这可能是我的问题的原因吗?我应该尊重领域的排名吗?

PS:我按此顺序发送

GET / HTTP/1.1
Upgrade: WebSocket
Connection: Up grade
Sec-WebSocket-Key1:  DC1M 5VEEm 731
Sec-WebSocket-Key2: 7 tQG6 7540Q226
Host: 127.0.0.1
Origin: 127.0.0.1
Sec-WebSocket-Protocol: myProtocol

以及 javascript 发送的内容:

GET / HTTP/1.1
Host: 127.0.0.1:8080
Origin:  null
Sec-WebSocket-Key1: 3O45   82 4   ;Q 0 376
Connection: Upgrade
Sec-WebSocket-Key2: <361      6  W 12 Z152
Upgrade: WebSocket
Sec-WebSocket-Protocol: myProtocol

谢谢 !

4

1 回答 1

0

标头字段未排序。来自 websocket 协议,草案 17:

   After the leading line in both cases come an unordered set of header
   fields.  The meaning of these header fields is specified in Section 4
   of this document.  Additional header fields may also be present, such
   as cookies [RFC6265].  The format and parsing of headers is as
   defined in [RFC2616].

https://datatracker.ietf.org/doc/html/draft-ietf-hybi-thewebsocketprotocol-17

于 2012-06-06T17:04:19.170 回答