对应进程的客户端也没收到消息,由于线程退出或应用程序请求,已中止 I/O 操作。
遍历部分和异常部分代码:
WsHandler client = list.Find(obj => obj.Uid.ToLower() == rooms[i].UserUid.ToLower());
if (client != null && client.WebSocketContext.WebSocket.State == WebSocketState.Open)
{
// client.WebSocketContext.WebSocket.State
client.Send(message);
}
/// <summary>
/// 异常
/// </summary>
public override void OnError()
{
if (this.Error != null)
{
Core.Logger.Log.Write(this.Error.ToString(), Core.Logger.MessageType.Error);
}
try
{
WsWorker.list.Remove(this);
}
catch (Exception ex)
{
Core.Logger.Log.Write(ex.ToString(), Core.Logger.MessageType.Error);
}
}
------------------------------------------------------
onerror之后出发了onclose,但是客户端没有收到close的消息,个人判断可能是因为路由等中间原因导致客户端判断连接正常,没有发起重新连接请求,不知道加个心跳机制能不能解决问题,或者有更好的方法。