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); }
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); }
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()); }
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); }
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); }
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); }
public void Message(ChatExchange exchange) { Connection.Connection.Send(Encoding.UTF8.GetBytes(exchange.Encode())); }
public void SendMessage(string message) { socket.Send(Encoding.UTF8.GetBytes(ChatExchange.Encode(LoginToken, ChatExchangeType.Message, ChatExchangeTarget.ChatRoom, "", "", message))); }
public void LeaveRoom() { socket.Send(Encoding.UTF8.GetBytes(ChatExchange.Encode(LoginToken, ChatExchangeType.LeaveRoom, ChatExchangeTarget.Server, "", "", ""))); }