From 1adec3501f5f29557659647b2b98791ea232b436 Mon Sep 17 00:00:00 2001 From: JoshuaReason Date: Sat, 26 Jan 2019 11:36:06 +1100 Subject: [PATCH] Fixed player log in --- .../Multiplayer/Client/ClientManager.cs | 16 ++++++++++---- .../Scipts/Multiplayer/Core/PlayerProtocol.cs | 17 +++++++------- .../Scipts/Multiplayer/Server/LoginManager.cs | 21 +++++++++++++++++- .../Multiplayer/Server/ServerManager.cs | 22 +------------------ 4 files changed, 41 insertions(+), 35 deletions(-) diff --git a/Assets/Scipts/Multiplayer/Client/ClientManager.cs b/Assets/Scipts/Multiplayer/Client/ClientManager.cs index 033307e..8024cf7 100644 --- a/Assets/Scipts/Multiplayer/Client/ClientManager.cs +++ b/Assets/Scipts/Multiplayer/Client/ClientManager.cs @@ -71,6 +71,7 @@ namespace Multiplayer { client.RegisterHandler(MsgType.Connect, OnConnected); client.RegisterHandler(MsgType.Disconnect, OnDisconnected); + client.RegisterHandler(LoginMsgID.QueryName, OnRecieveID); } @@ -78,10 +79,7 @@ namespace Multiplayer { IsConnected = true; ID = (byte)msg.conn.connectionId; - Debug.Log("Successfully connected to server"); - Debug.Log("Connection ID: " + msg.conn.connectionId); - - SendMessage(LoginMsgID.Name, new StringMsg(ID, Name)); + Debug.Log("Successfully connected to server"); } private void OnDisconnected(NetworkMessage msg) @@ -90,7 +88,17 @@ namespace Multiplayer Debug.Log("Disconnected from Server"); } + private void OnRecieveID(NetworkMessage msg) + { + PlayerMsg playerMsg; + if (!Utility.ReadMessage(msg, out playerMsg)) + return; + Debug.Log("Recieved ID from server: " + playerMsg.ID); + + ID = playerMsg.ID; + SendMessage(LoginMsgID.Name, new StringMsg(ID, Name)); + } /// diff --git a/Assets/Scipts/Multiplayer/Core/PlayerProtocol.cs b/Assets/Scipts/Multiplayer/Core/PlayerProtocol.cs index 4dad011..bb6627e 100644 --- a/Assets/Scipts/Multiplayer/Core/PlayerProtocol.cs +++ b/Assets/Scipts/Multiplayer/Core/PlayerProtocol.cs @@ -16,23 +16,23 @@ namespace Multiplayer public class PlayerMsg : MessageBase { - public ushort playerID; + public byte ID; public PlayerMsg() { } - public PlayerMsg(ushort playerID) + public PlayerMsg(byte playerID) { - this.playerID = playerID; + this.ID = playerID; } public override void Serialize(NetworkWriter writer) { - writer.Write(playerID); + writer.Write(ID); } public override void Deserialize(NetworkReader reader) { - playerID = reader.ReadUInt16(); + ID = reader.ReadByte(); } } @@ -43,7 +43,7 @@ namespace Multiplayer public Vector3 vector; public VectorMsg() { } - public VectorMsg(ushort PlayerID, Vector3 Vector) : base(PlayerID) + public VectorMsg(byte PlayerID, Vector3 Vector) : base(PlayerID) { this.vector = Vector; } @@ -67,7 +67,7 @@ namespace Multiplayer public Quaternion quaternion; public QuaternionMsg() { } - public QuaternionMsg(ushort PlayerID, Quaternion quaternion) : base(PlayerID) + public QuaternionMsg(byte PlayerID, Quaternion quaternion) : base(PlayerID) { this.quaternion = quaternion; } @@ -95,7 +95,7 @@ namespace Multiplayer public StringMsg() { } - public StringMsg(ushort PlayerID, string String) : base(PlayerID) + public StringMsg(byte PlayerID, string String) : base(PlayerID) { this.String = String; } @@ -104,7 +104,6 @@ namespace Multiplayer public override void Serialize(NetworkWriter writer) { base.Serialize(writer); - writer.Write(String); } diff --git a/Assets/Scipts/Multiplayer/Server/LoginManager.cs b/Assets/Scipts/Multiplayer/Server/LoginManager.cs index 7d8cac9..5c10f02 100644 --- a/Assets/Scipts/Multiplayer/Server/LoginManager.cs +++ b/Assets/Scipts/Multiplayer/Server/LoginManager.cs @@ -21,6 +21,8 @@ namespace Multiplayer public void RegisterHandles() { ServerManager.Server.RegisterHandler(LoginMsgID.Name, OnPlayerLogin); + ServerManager.Server.RegisterHandler(MsgType.Connect, OnConnect); + ServerManager.Server.RegisterHandler(MsgType.Disconnect, OnDisconnect); } @@ -33,7 +35,7 @@ namespace Multiplayer Debug.Log("Player login: " + stringMsg.String); - if (ServerManager.AllPlayers.ContainsKey(stringMsg.playerID)) + if (ServerManager.AllPlayers.ContainsKey(stringMsg.ID)) { Debug.Log(stringMsg.String + " already logged in"); return; @@ -43,6 +45,23 @@ namespace Multiplayer ServerManager.AllPlayers.Add(newPlayer.ID, newPlayer); } + + private void OnConnect(NetworkMessage msg) + { + Debug.Log("New Connection: \n Address: " + msg.conn.address + "\n ID: " + msg.conn.connectionId); + msg.conn.Send(LoginMsgID.QueryName, new PlayerMsg((byte)msg.conn.connectionId)); + } + + private void OnDisconnect(NetworkMessage msg) + { + if (ServerManager.AllPlayers.ContainsKey(msg.conn.connectionId)) + { + Debug.Log(ServerManager.AllPlayers[msg.conn.connectionId].Name + "has disconnected."); + ServerManager.AllPlayers.Remove(msg.conn.connectionId); + } + else + Debug.Log("Unkown player has disconnected."); + } } } \ No newline at end of file diff --git a/Assets/Scipts/Multiplayer/Server/ServerManager.cs b/Assets/Scipts/Multiplayer/Server/ServerManager.cs index d55e3a2..d0b7132 100644 --- a/Assets/Scipts/Multiplayer/Server/ServerManager.cs +++ b/Assets/Scipts/Multiplayer/Server/ServerManager.cs @@ -41,12 +41,7 @@ namespace Multiplayer this.Port = Port; AllPlayers = new Dictionary(); - Server = new NetworkServerSimple(); - - Server.RegisterHandler(MsgType.Connect, OnConnect); - Server.RegisterHandler(MsgType.Disconnect, OnDisconnect); - Server.Configure(ChannelConfig.DefaultTopology()); Debug.Log("Starting Server on " + Port); @@ -62,22 +57,7 @@ namespace Multiplayer } - private void OnConnect(NetworkMessage msg) - { - Debug.Log("New Connection: \n Address: " + msg.conn.address + "\n ID: " + msg.conn.connectionId); - //msg.conn.Send(LoginMsgID.QueryName, new PlayerMsg((byte)msg.conn.connectionId)); - } - - private void OnDisconnect(NetworkMessage msg) - { - if (AllPlayers.ContainsKey(msg.conn.connectionId)) - { - Debug.Log(AllPlayers[msg.conn.connectionId].Name + "has disconnected."); - AllPlayers.Remove(msg.conn.connectionId); - } - else - Debug.Log("Unkown player has disconnected."); - } +