Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在C#中协商WebSocket(Chrome连接到Unity C#TCP客户端)_C#_Javascript_Google Chrome_Websocket_Tcplistener - Fatal编程技术网

在C#中协商WebSocket(Chrome连接到Unity C#TCP客户端)

在C#中协商WebSocket(Chrome连接到Unity C#TCP客户端),c#,javascript,google-chrome,websocket,tcplistener,C#,Javascript,Google Chrome,Websocket,Tcplistener,我一直在尝试设置Unity3D组件,该组件与Javascript客户端协商WebSocket连接 我有一个线程化的TCPListener(c#),它处理HTTP请求并尝试协商握手,尽管它似乎无声地失败了。客户端在我发送响应后不久关闭连接 我一直在遵循本网站上的说明: 这是套接字日志 ws://localhost:3000/serverStart Start Time: Wed Aug 24 2011 23:32:54 GMT+0100 (GMT Daylight Time) t=131422

我一直在尝试设置Unity3D组件,该组件与Javascript客户端协商WebSocket连接

我有一个线程化的TCPListener(c#),它处理HTTP请求并尝试协商握手,尽管它似乎无声地失败了。客户端在我发送响应后不久关闭连接

我一直在遵循本网站上的说明:

这是套接字日志

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             

如果您能提供任何帮助,我们将不胜感激。

我在Freenode上的#WhatWG频道上与一些人讨论了这一点(因此我不能接受这一点),我们想知道为什么原点为空。也许Chrome有一个安全实现,不允许来自空源的连接(例如使用文件://)

有人建议尝试Opera 11.00或更高版本,以查看Chrome是否存在错误或某些安全模型不允许存在此错误。

Opera将(如果在Opera:config中启用WebSocket)在错误控制台中记录拒绝连接的原因,这有助于在出现问题的地方进行调试(如果是挑战、键入的标题或错误的来源等)


但我怀疑这里真正的问题是,您正在从文件:///进行测试,Chrome不喜欢这样。

websocket协议仍在发展,我怀疑这是一个“旧(er)”草案的例子……它也依赖于浏览器版本(因为不同的浏览器版本实现不同的草案版本)我相当肯定我有正确版本的规范,我正在处理00版本。使用Chrome13(14将使用一个新的规范一旦发布)如果您处理的是00,那么这是错误的/Chrome 13实现03又名v76-请参阅抱歉,我的错误我提到的文章似乎是v76。似乎仍然找不到错误。我已将其与有效响应进行了比较,我唯一能想到的是,如果我的质询响应无效,但我遵循规范响应=MD5(bitpack)(Key1(仅限数字/num空格)、Key2(仅限数字/num空格)、RequestBody))今晚将尝试,如果再次出现权限错误,这将是我第三次因Chrome权限错误而失去开发时间:'(
response = MD5( bitpack(
             Key1(numbers only / num of spaces), 
             Key2(numbers only / num of spaces), 
             RequestBody))