我曾经运行过c#服务器和html客户端,但是它们之间的握手失败了:
html客户端控制台错误
“与'ws:// localhost:100 /'的WebSocket连接失败:连接建立错误:net :: ERR_CONNECTION_REFUSED”
我运行服务器时的服务器控制台输出:
react-router
文本是获取时间的请求 发送给客户的时间 收到的文字: 文字是获取时间的要求 发送给客户的时间
server.cs
window.location.replace
}
client.html
Setting up server...
Server setup complete
Client connected, waiting for request...
Received Text: GET / HTTP/1.1
Host: localhost:100
Connection: Upgrade
Pragma: no-cache
Cache-Control: no-cache
Upgrade: websocket
Origin: http://localhost:63342
Sec-WebSocket-Version: 13
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML,
like Gecko) Chrome/67.0.3396.99 Safari/537.36
Accept-Encoding: gzip, deflate, br
Accept-Language: fr-FR,fr;q=0.9,en-US;q=0.8,en;q=0.7
Cookie: wab_portalurl_persistent=https%3A%2F%2Fgeo-tebourbi.maps.arcgis.com;
wab_cr_theme-config-Plugin=%5B%5D
Sec-WebSocket-Key: DjATMra8JUjbbvoD5EAz0Q==
Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits
我的代码中有关握手步骤的问题吗?谢谢
答案 0 :(得分:1)
您正在客户端使用WebSocket,而在服务器端使用普通套接字。但是,WebSocket与普通套接字不同,服务器需要使用WebSockets应用协议来与WebSockets客户端进行通信。
请参见Writing a WebSocket server in C#,以及如何Differences between TCP sockets and web sockets, one more time,以了解为什么不能像您尝试的那样将简单的TCP服务器与WebSockets客户端一起使用。