public void Register() { var LoginInfo = new MMOLogin(); LoginInfo.nickname = inputNickname.text; LoginInfo.password = inputPassword.text; MultiplayerClient.singleton.SendData("Register", "", "Server", JsonConvert.SerializeObject(LoginInfo)); }
protected override void ClientManagement(object o) { int id = (int)o; TcpClient client = clientsList[id]; bool isConnected = true; string nickname = ""; while (isConnected) { NetworkStream stream = client.GetStream(); byte[] buffer = new byte[1024]; try { int byte_count = stream.Read(buffer, 0, buffer.Length); if (byte_count == 0) { Console.WriteLine($"Client {id} disconnected"); BroadcastMessage("Disconnection", nickname, "All", ""); isConnected = false; if (loggedClientsList.ContainsKey(nickname)) { loggedClientsList.Remove(nickname); } break; } string data = Encoding.ASCII.GetString(buffer, 0, byte_count); MMOMessage recivedMessage = JsonConvert.DeserializeObject <MMOMessage>(data); if (recivedMessage.Reciever != "Server") { if (!string.IsNullOrEmpty(nickname)) { recivedMessage.Sender = nickname; BroadcastMessage(JsonConvert.SerializeObject(recivedMessage)); Console.WriteLine(data); } } else { if (recivedMessage.Type == "Login") { //Comprobate Console.WriteLine($"{0} is trying to start a connection"); MMOLogin logData = JsonConvert.DeserializeObject <MMOLogin>(recivedMessage.Message); if (Login(logData.nickname, logData.password)) { nickname = logData.nickname; loggedClientsList.Add(nickname, client); SendMessage("ConnectionAproved", "Server", nickname, "", client); } else { SendMessage("Error", "Server", "", "Incorrect login data", client); } } else if (recivedMessage.Type == "Register") { MMOLogin logData = JsonConvert.DeserializeObject <MMOLogin>(recivedMessage.Message); if (Register(logData.nickname, logData.password)) { SendMessage("Alert", "Server", id.ToString(), "Succedfull register", client); } else { SendMessage("Error", "Server", id.ToString(), "Error ocurred on the register", client); } } } } catch { Console.WriteLine($"Client {id} disconnected in with an error"); BroadcastMessage("Disconnection", nickname, "All", ""); isConnected = false; if (loggedClientsList.ContainsKey(nickname)) { loggedClientsList.Remove(nickname); } break; } } clientsList.Remove(id); client.Client.Shutdown(SocketShutdown.Both); client.Close(); }