2012-06-06 4 views
0

외부 websocket 서버를 호출하려고하는데 작동하지 않습니다. 오류가 있습니다. nonsero hanshake.Websocket, header and ranking

저는 C# 응용 프로그램에서 superwebsocket의 클라이언트를 사용하고 있습니다.

나는 (wireshark를 사용하여) 내가 (자바 스크립트에서) 작동하는 예제와 함께 보낸 것과 비교했다. 그리고 유일한 차이점은 헤더의 필드 순위를 확인했다.

내 문제의 원인 일 수 있습니까? 들판의 계급을 존중해야합니까?

PS :

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 

감사 :이 순서

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 

어떤 자바 스크립트 전송에 보내!

+0

은 "연결"값이 예를 들면 ... 헤더의 필드의 바로 위보다 더 많은 차이가있을 것 같다 다른 점은 "Origin"과 동일하며 "Host"는 두 버전간에 서로 다른 포트를 사용하는 것으로 보입니다. 이러한 변화로 인해 변화가 있습니까? –

+0

"Connection : Up grade"의 공간은 악수를 유발하여 오타가되지 않습니다. – simonc

+0

서버에서 웹 소켓 프로토콜의 어떤 변형이 있습니까? 핸드 쉐이크는 Hixie의 오래된 변형입니다. 이것은 더 이상 사용되지 않으며 많은 용도로 호환되지 않는 Hybi 버전으로 대체되었습니다. – simonc

답변

0

헤더 필드는 정렬되지 않습니다. 웹 소켓 프로토콜에서, 초안 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]. 

http://tools.ietf.org/html/draft-ietf-hybi-thewebsocketprotocol-17

+0

당신은 이유가 있습니다, 나는 또한 websocket 프로토콜 hybi-00을 검사했고 그것은 순서가 의미가 없다고 말했습니다 – ahikaz