我使用了" closeoutputasync ";
在c#客户端启动与Node.js服务器的亲密握手。我的Node.js服务器收到一个"关闭"事件并立即设置其websocket.readyState"作为"CLOSED"没有经过"关闭"。
当我的c#客户端发送亲密握手时,他将自己的状态设置为"CloseSent"
问题是我的c#保持在这个状态,而我的Node.js服务器认为websocket连接是关闭的。
如何检测连接正在"关闭"?我可以使用ws库的哪个功能向c#客户端发送确认,以确保他的状态从"CloseSent";Closed">
?我使用标准的" was "和标准的System.Net.WebSockets"在c#。
我终于找到解决办法了。
当c#客户端启动关闭时,他应该用"CloseAsync"而不是"closeoutputasync"。node.js服务器立即将websocket状态设置为"已关闭";没有经历过"关闭"状态(从未找到触发此"关闭"的方法)。状态),但是c#客户端将他的状态设置为"Closed"
如果node.js服务器正在启动关闭,那么c#客户端应该使用"closeoutputasync"。c#客户端状态从Open ->CloseReceived→CloseSent→关闭。