我正在使用Alchemy Websockets并查看源代码,它具有Ping/Pong支持,但似乎没有使用它的方法。
我想在一个定时间隔从服务器发送一个Ping,如果我没有从客户端得到回复,关闭连接。
我想它是内置的:
var aServer = new WebSocketServer(81, IPAddress.Any) {
OnReceive = OnReceive,
OnSend = OnSend,
OnConnect = OnConnect,
OnConnected = OnConnected,
OnDisconnect = OnDisconnect,
TimeOut = new TimeSpan(0, 5, 0)
};
TimeOut
参数似乎是关键。可能每TimeOut/3或TimeOut/2间隔发送一次ping,如果连接在TimeOut中没有应答,将断开连接。
你可以看到ping/pong帧从谷歌浏览器。打开网络选项卡,选择WebSocket连接(HTTP 101状态的那个),打开帧选项卡(该选项卡不会自动刷新,所以你必须及时切换)。
欢呼。