AnyChat技术支持论坛

标题: 进入房间返回错误207 [打印本页]

作者: lezhuowen    时间: 2016-8-19 09:24
标题: 进入房间返回错误207
有几个坐席房间,当一个坐席进入一个房间,然后点击退出房间,并且BRAC_LeaveRoom的返回值是0了,但是当这个坐席进入重新第二个房间的时候就返回错误207了,请各位大神告诉是怎么回事呢
作者: 佰锐科技-邵光清    时间: 2016-8-19 09:44
您好,请将业务服务器上的enterroom回调函数和leaveroom回调函数里面的逻辑代码发过来一下;另外,坐席BRAC_LeaveRoom之后,业务服务器上是否记录他离开了房间?
作者: lezhuowen    时间: 2016-8-19 09:49
佰锐科技-邵光清 发表于 2016-8-19 09:44
您好,请将业务服务器上的enterroom回调函数和leaveroom回调函数里面的逻辑代码发过来一下;另外,坐席BRAC ...

     离开房间是:
private void OnUserLeaveRoomActionCallBack(int userId, int roomId, int userValue)
        {

            //如果是客户端,客户端置进入房间信息,记录日志
            ReceptionClient client = GetClientById(userId);
            int a = _lstClient.Count;
            if (client != null)
            {
                this.Dispatcher.Invoke(new Action(() =>
                {
                    client.RoomID = 0;
                    client.RoomName = string.Empty;
                }));
            }
            //如果是坐席端,置房间状态,并广播给用户房间状态            
            ReceptionRoom room = GetRoomById(roomId);
            //byte[] sendCmd = receptionDataCmd.CreateCmdRoomStatus(room);
            if (room.RoomDoctorID == userId)
            {
                this.Dispatcher.Invoke(new Action(() =>
                {
                    //置空
                    room.RoomDoctorID = 0;
                    room.RoomDoctorName = string.Empty;

                    byte[] sendCmd = receptionDataCmd.CreateCmdRoomStatus(room);
                    foreach (var o in _lstClient)
                    {
                        //向所有用户发送房间更新操作
                        AnyChatServerSDK.BRAS_TransBuffer(o.UserID, sendCmd, sendCmd.Length);
                    }
                    AnyChatServerSDK.BRAS_TransBuffer(userId, sendCmd, sendCmd.Length);
                }));
            }
            else if (room.UserID == userId)
            {
                room.UserID = 0;
                byte[] sendCmd = receptionDataCmd.CreateCmdRoomStatus(room);
                foreach (var o in _lstClient)
                {
                    //向所有用户发送房间更新操作
                    AnyChatServerSDK.BRAS_TransBuffer(o.UserID, sendCmd, sendCmd.Length);
                }
            }
         

        }

进入房间的:
  private void OnUserEnterRoomActionCallBack(int userId, int roomId, int userValue)
        {
            //如果是坐席端,置房间状态,并广播给用户房间状态
            ReceptionRoom room = GetRoomById(roomId);//当前房间
         
            if (room.RoomDoctorID != userId)
            {
                room.UserID = userId;
            }

            byte[] sendCmd = receptionDataCmd.CreateCmdRoomStatus(room);
            foreach (var o in _lstClient)//其他在线用户
            {
                //向所有用户发送房间更新操作
                AnyChatServerSDK.BRAS_TransBuffer(o.UserID, sendCmd, sendCmd.Length);
            }

            foreach (var v in _lstRoom)//所有用户
            {
                if (v.RoomDoctorID != 0)
                {
                    AnyChatServerSDK.BRAS_TransBuffer(v.RoomDoctorID, sendCmd, sendCmd.Length);
                }
            }
        }

已经记录了的,并且已经返回所有房间的状态了
作者: admin    时间: 2016-8-19 18:57
您好,请将出错时的客户端日志、核心服务器日志发过来,我们帮您分析一下,谢谢。




欢迎光临 AnyChat技术支持论坛 (http://bbs.anychat.cn/) Powered by Discuz! X3