Ala*_*lan 7 .net c# asp.net websocket
使用Microsoft.Web.WebSockets.WebSocketHandler使用WebSocket服务器,我将连接的客户端保留在WebSocketCollection中.当客户端丢失其网络连接时,在服务器上不会调用OnClose和OnError方法.此外,查看集合中的特定客户端会显示其WebSocket.State仍被描述为已连接.这是在IIS8上.
如果没有手动向客户端发送消息并寻找响应,是否有另一种方法可以确定客户端已丢弃网络?我缺少一些IIS配置吗?谢谢.
Ala*_*lan 15
我能够通过两个步骤解决我的问题.首先,我在提示符下运行以下命令来编辑IIS配置.
cd \Windows\System32\inetsrv
appcmd unlock config /section:system.webServer/websocket
Run Code Online (Sandbox Code Playgroud)
然后我用以下内容更新了我的Web.config.
<system.webServer>
<webSocket enabled="true" pingInterval="00:00:05" />
<system.webServer />
Run Code Online (Sandbox Code Playgroud)
这就是 TCP:当你不发送或接收时,你如何知道对等点是否仍然存在或已经消失?
如果您终止对等进程或重新启动其计算机,则该对等方的操作系统网络堆栈通常会主动关闭 TCP,因此您也会立即检测到丢失的 WebSocket 检测。但是,如果您只是拔掉对等方(电源或网络)的插头或发生其他严重情况,则 TCP 不会主动关闭。
在 WebSocket 的上下文中,您可以执行 WebSocket 级别的 ping/pong(不知道 IIS 是否支持 .. WS ping/pong 心跳),或者您可以通过发送小型 WS 消息来执行应用程序级别的心跳。
| 归档时间: |
|
| 查看次数: |
6481 次 |
| 最近记录: |