boboshan 2015-05-27 09:04
浏览 2483

websocket 服务器端onmessage中遍历发送消息后触发error,

对应进程的客户端也没收到消息,由于线程退出或应用程序请求,已中止 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的消息,个人判断可能是因为路由等中间原因导致客户端判断连接正常,没有发起重新连接请求,不知道加个心跳机制能不能解决问题,或者有更好的方法。
  • 写回答

0条回答

    报告相同问题?

    悬赏问题

    • ¥50 易语言把MYSQL数据库中的数据添加至组合框
    • ¥20 求数据集和代码#有偿答复
    • ¥15 关于下拉菜单选项关联的问题
    • ¥20 java-OJ-健康体检
    • ¥15 rs485的上拉下拉,不会对a-b<-200mv有影响吗,就是接受时,对判断逻辑0有影响吗
    • ¥15 使用phpstudy在云服务器上搭建个人网站
    • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
    • ¥15 vue3+express部署到nginx
    • ¥20 搭建pt1000三线制高精度测温电路
    • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况