コード例 #1
0
 public void JoinChatRoom(UserLogicModel user, JoinChatRoomRequest joinChatRoomRequest)
 {
     qManager.SendMessage(joinChatRoomRequest.Room.ChatServer, "Area.Chat.JoinChatRoom", user, joinChatRoomRequest);
 }
コード例 #2
0
        private void OnJoinChatChannel(UserLogicModel user, JoinChatRoomRequest data)
        {
            var cur = getRoomFromUser(user);
            if (cur != null) leaveChatRoom(user);

            ChatRoomDataModel currentRoomData = null;
            foreach (var chatRoomModel in runningRooms) {
                if (chatRoomModel.RoomName == data.Room.ChatChannel)
                    currentRoomData = chatRoomModel;
            }
            if (currentRoomData == null)
                throw new Exception("idk");


            myDataManager.ChatData.AddUser(currentRoomData,
                                           user,
                                           room => {
                                               myServerManager.RegisterChatServer(user);
                                               var roomToSend = new ChatRoomDataModel(room.RoomName, room.Users, room.Messages);

                                               roomToSend.Messages = room.Messages.Extract(room.Messages.Count - 5);
                                               myServerManager.SendChatInfo(user, roomToSend.ToModel());

                                               roomToSend = new ChatRoomDataModel(room.RoomName, room.Users, null);

                                               foreach (var userLogicModel in currentRoomData.Users) {
                                                   myServerManager.SendChatInfo(userLogicModel, roomToSend.ToModel() );
                                               }
                                           });
        }