Example #1
0
        public void JoinRoomHandler(ChatExchange chatExchange, User user)
        {
            ChatRoom requestedRoom    = GetRoom(chatExchange.ExchangeTargetName);
            string   responseExchange = String.Empty;

            if (!requestedRoom.RequiresPassword)
            {
                requestedRoom.AddUser(user);
                responseExchange = "JOINED";
            }
            else
            {
                if (chatExchange.Exchange == requestedRoom.Password)
                {
                    requestedRoom.AddUser(user);
                    responseExchange = "JOINED";
                }
                else
                {
                    responseExchange = "INVALIDPASSWORD";
                }
            }
            string encoded = ChatExchange.Encode("", ChatExchangeType.Command, ChatExchangeTarget.Individual, "Server", "", responseExchange);

            byte[] sendBuffer = Encoding.UTF8.GetBytes(encoded);
            user.Connection.Connection.Send(sendBuffer);
        }
Example #2
0
        public void LeaveRoomHandler(ChatExchange chatExchange, User user)
        {
            user.LeaveRoom();
            string encoded = ChatExchange.Encode("", ChatExchangeType.Command, ChatExchangeTarget.Individual, "Server", "", "LEFT");

            byte[] sendBuffer = Encoding.UTF8.GetBytes(encoded);
            user.Connection.Connection.Send(sendBuffer);
        }
Example #3
0
        public AvailableRoom[] GetAvailableRooms()
        {
            socket.Send(Encoding.UTF8.GetBytes(ChatExchange.Encode(LoginToken, ChatExchangeType.ChatRoomList, ChatExchangeTarget.Server, "", "", "")));
            byte[]               receiveBuffer = new byte[1024 * 8];
            int                  receiveSize   = socket.Receive(receiveBuffer);
            RoomListExchange     exchange      = RoomListExchange.Decode(receiveBuffer, receiveSize);
            List <AvailableRoom> rooms         = exchange.Rooms;

            return(rooms.ToArray());
        }
Example #4
0
        public JoinRoomOutcome CreateRoom(string roomName, string roomPassword)
        {
            socket.Send(Encoding.UTF8.GetBytes(ChatExchange.Encode(LoginToken, ChatExchangeType.CreateRoom, ChatExchangeTarget.Server, "", roomName, roomPassword)));
            byte[]       receiveBuffer = new byte[1024 * 2];
            int          receiveSize   = socket.Receive(receiveBuffer);
            ChatExchange exchange      = ChatExchange.Decode(receiveBuffer, receiveSize);

            if (exchange.Exchange == "JOINED")
            {
                return(JoinRoomOutcome.Success);
            }
            return(JoinRoomOutcome.Fail);
        }
Example #5
0
        public JoinRoomOutcome JoinRoom(string roomId, string password = "")
        {
            socket.Send(Encoding.UTF8.GetBytes(ChatExchange.Encode(LoginToken, ChatExchangeType.JoinRoom, ChatExchangeTarget.Server, "", roomId, password)));
            byte[]       receiveBuffer = new byte[1024 * 2];
            int          receiveSize   = socket.Receive(receiveBuffer);
            ChatExchange exchange      = ChatExchange.Decode(receiveBuffer, receiveSize);

            if (exchange.Exchange == "JOINED")
            {
                return(JoinRoomOutcome.Success);
            }
            if (exchange.Exchange == "INVALIDPASSWORD")
            {
                return(JoinRoomOutcome.InvalidPassword);
            }
            return(JoinRoomOutcome.Fail);
        }
Example #6
0
        public void CreateChatRoomHandler(ChatExchange chatExchange, User user)
        {
            string roomName     = chatExchange.ExchangeTargetName;
            string roomPassword = chatExchange.Exchange;

            ChatRoom newRoom = new ChatRoom {
                ID = GetRoomId(), MaxUsers = 10, Name = roomName, Password = roomPassword, TempRoom = true
            };

            chatRooms.Add(newRoom);

            newRoom.AddUser(user);
            user.IsRoomHost = true;

            string encoded = ChatExchange.Encode("", ChatExchangeType.Command, ChatExchangeTarget.Individual, "Server", newRoom.ID, "JOINED");

            byte[] sendBuffer = Encoding.UTF8.GetBytes(encoded);
            user.Connection.Connection.Send(sendBuffer);
        }
Example #7
0
 public void Message(ChatExchange exchange)
 {
     Connection.Connection.Send(Encoding.UTF8.GetBytes(exchange.Encode()));
 }
Example #8
0
 public void SendMessage(string message)
 {
     socket.Send(Encoding.UTF8.GetBytes(ChatExchange.Encode(LoginToken, ChatExchangeType.Message, ChatExchangeTarget.ChatRoom, "", "", message)));
 }
Example #9
0
 public void LeaveRoom()
 {
     socket.Send(Encoding.UTF8.GetBytes(ChatExchange.Encode(LoginToken, ChatExchangeType.LeaveRoom, ChatExchangeTarget.Server, "", "", "")));
 }