我一直在嘗試設置一個Unity3D組件來與一個Javascript客戶端協商一個WebSocket連接。在C#中談判一個WebSocket(Chrome連接到Unity C#TCP客戶端)
我有一個線程化的TCPListener(c#),它處理HTTP請求並嘗試協商握手,雖然它似乎在默默地失敗。客戶在我發送回覆後不久就關閉了連接。
我一直在關注這個網站上說明:http://deusty.blogspot.com/2010/09/websocket-draft-76-algorithm-example.html
這裏是套接字登錄
ws://localhost:3000/serverStart
Start Time: Wed Aug 24 2011 23:32:54 GMT+0100 (GMT Daylight Time)
t=1314225174926 [st= 0] +REQUEST_ALIVE [dt=1038]
t=1314225174926 [st= 0] +SOCKET_STREAM_CONNECT [dt= 999]
--> url = "ws://localhost:3000/serverStart"
t=1314225174927 [st= 1] +PROXY_SERVICE [dt= 0]
t=1314225174927 [st= 1] PROXY_SERVICE_RESOLVED_PROXY_LIST
--> pac_string = "DIRECT"
t=1314225174927 [st= 1] -PROXY_SERVICE
t=1314225174927 [st= 1] +PROXY_SERVICE [dt= 0]
t=1314225174927 [st= 1] PROXY_SERVICE_RESOLVED_PROXY_LIST
--> pac_string = "DIRECT"
t=1314225174927 [st= 1] -PROXY_SERVICE
t=1314225174927 [st= 1] HOST_RESOLVER_IMPL [dt= 2]
--> source_dependency = {"id":455371,"type":7}
t=1314225175925 [st= 999] -SOCKET_STREAM_CONNECT
t=1314225175926 [st=1000] WEB_SOCKET_SEND_REQUEST_HEADERS
--> GET /serverStart HTTP/1.1
Upgrade: WebSocket
Connection: Upgrade
Host: localhost:3000
Origin: null
Sec-WebSocket-Key1: 52 18 5w7 9 9 2c
Sec-WebSocket-Key2: a2PA tG8 1>7242<6(yj7I2
\x78\x15\xbc\x75\x2d\x54\x3b\xea
t=1314225175926 [st=1000] SOCKET_STREAM_SENT
t=1314225175963 [st=1037] SOCKET_STREAM_RECEIVED
t=1314225175963 [st=1037] WEB_SOCKET_READ_RESPONSE_HEADERS
--> HTTP/1.1 101 WebSocket Protocol Handshake
Upgrade: WebSocket
Connection: Upgrade
Sec-WebSocket-Origin: null
Sec-WebSocket-Location: ws://localhost:3000/serverStart
Sec-WebSocket-Protocol: webpad
\x20\xc3\xc3\xf6\xad\xd2\x76\x63\x48\x86\x0c\xd2\xa6\xb1\x06\x72
t=1314225175963 [st=1037] SOCKET_STREAM_RECEIVED
t=1314225175963 [st=1037] SOCKET_STREAM_RECEIVED
t=1314225175964 [st=1038] -REQUEST_ALIVE
我用下面的算法中
response = MD5(bitpack(
Key1(numbers only/num of spaces),
Key2(numbers only/num of spaces),
RequestBody))
任何生成響應幫助你可以給予不勝感激?
WebSocket協議仍在發展之中,我懷疑的例子是一個「舊(ER)」草案......還有對瀏覽器版本的依賴性過(因爲不同的瀏覽器版本實現不同版本草案) – Yahia
我相當肯定我有規範的正確版本,我正在處理00版本。使用Chrome 13(14將採用一種新的規範一旦釋放顯然) – Kimau
如果你正在處理的00,然後將其錯誤/鉻13實現03又名V76 - 見http://stackoverflow.com/questions/4878830/which-version-的-的WebSockets協議草稿,並-谷歌 - 鉻 - 執行/ 4879388#4879388 – Yahia