/// <summary> /// 客户端聊天的请求处理 /// </summary> /// <param name="client"></param> /// <param name="msg"></param> private void Chat(ClientPeer client, string msg) { SingleExecute.Instance.Exeecute(() => { foreach (var matchCache in matchCaches) { if (matchCache.IsMatching(client.Id)) // 客户端在匹配房间里 { MatchRoom room = matchCache.GetRoom(client.Id); chatDto.Change(client.Id, client.UserName, msg); room.Broadcast(OpCode.Chat, ChatCode.BRO, chatDto); } } if (fightCache.IsFighting(client.Id) == false) { return; } FightRoom fightRoom = fightCache.GetFightRoomByUserId(client.Id); chatDto.Change(client.Id, client.UserName, msg); fightRoom.Broadcast(OpCode.Chat, ChatCode.BRO, chatDto); }); }
private void processCREQ(ClientPeer clientPeer, int chattype) { if (!UserCache.Instance.IsOnline(clientPeer)) { return; } int uid = UserCache.Instance.GetId(clientPeer); if (MatchCache.Instance.IsMatching(uid)) { //如果用户正在匹配房间可以发送聊天信息 MatchRoom matchRoom = MatchCache.Instance.GetRoom(uid); chatDto.Change(uid, chattype); //向自己以外的玩家发送聊天消息 matchRoom.Broadcast(OpCode.CHAT, ChatCode.SBOD, chatDto); } //TODO在游戏房间也可以发送 }