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条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 路易威登官网 里边的参数逆向
    • ¥15 Arduino无法同时连接多个hx711模块,如何解决?
    • ¥50 需求一个up主付费课程
    • ¥20 模型在y分布之外的数据上预测能力不好如何解决
    • ¥15 processing提取音乐节奏
    • ¥15 gg加速器加速游戏时,提示不是x86架构
    • ¥15 python按要求编写程序
    • ¥15 Python输入字符串转化为列表排序具体见图,严格按照输入
    • ¥20 XP系统在重新启动后进不去桌面,一直黑屏。
    • ¥15 opencv图像处理,需要四个处理结果图