From 3bd2e17ab83588e93eaf964c0e3e9d9e7510eb4c Mon Sep 17 00:00:00 2001 From: teascade Date: Mon, 8 May 2017 04:42:18 +0300 Subject: [PATCH] Added a small fun chat command --- Assets/Scripts/Networking/Client.cs | 26 +++++++++++++++++++++++++- Assets/Scripts/Networking/PktType.cs | 2 +- Assets/Scripts/Networking/Server.cs | 15 +++++++++++---- 3 files changed, 37 insertions(+), 6 deletions(-) diff --git a/Assets/Scripts/Networking/Client.cs b/Assets/Scripts/Networking/Client.cs index 8e4b9e6..8201f36 100644 --- a/Assets/Scripts/Networking/Client.cs +++ b/Assets/Scripts/Networking/Client.cs @@ -33,6 +33,8 @@ public class Client : MonoBehaviour { Running = true; + NetClient.RegisterHandler(PktType.TextMessage, HandlePacket); + NetClient.RegisterHandler(MsgType.Connect, OnConnected); NetClient.RegisterHandler(MsgType.Disconnect, OnDisconnected); NetClient.RegisterHandler(MsgType.Error, OnError); @@ -43,10 +45,32 @@ public class Client : MonoBehaviour { Term.Println("Client launched!"); } + public void HandlePacket(NetworkMessage msg) { + switch (msg.msgType) { + case (PktType.TextMessage): + TextMessage TextMsg = new TextMessage(); + TextMsg.Deserialize(msg.reader); + Term.Println(TextMsg.Message); + break; + default: + Debug.LogError("Received an unknown packet, id: " + msg.msgType); + Term.Println("Received an unknown packet, id: " + msg.msgType); + break; + } + } + + public void Send(short type, MessageBase message) { + NetClient.Send(type, message); + } + public void OnConnected(NetworkMessage msg) { Debug.Log("Connected!"); Term.Println("Connected!"); - NetClient.Send(PktType.TestMessage, new TextMessage("Hai, I connected!")); + + Term.AddCommand("send (message)", "Send a message across the vastness of space and time!", (args) => { + Term.Println("You: " + args[0]); + Send(PktType.TextMessage, new TextMessage("A Client: " + args[0])); + }); } public void OnDisconnected(NetworkMessage msg) { diff --git a/Assets/Scripts/Networking/PktType.cs b/Assets/Scripts/Networking/PktType.cs index 7fb4bdc..c993494 100644 --- a/Assets/Scripts/Networking/PktType.cs +++ b/Assets/Scripts/Networking/PktType.cs @@ -4,5 +4,5 @@ using UnityEngine; public class PktType { - public const short TestMessage = 200; + public const short TextMessage = 200; } \ No newline at end of file diff --git a/Assets/Scripts/Networking/Server.cs b/Assets/Scripts/Networking/Server.cs index 690f75c..50bb914 100644 --- a/Assets/Scripts/Networking/Server.cs +++ b/Assets/Scripts/Networking/Server.cs @@ -23,7 +23,7 @@ public class Server : MonoBehaviour { NetworkServer.Listen(port); - NetworkServer.RegisterHandler(PktType.TestMessage, HandlePacket); + NetworkServer.RegisterHandler(PktType.TextMessage, HandlePacket); NetworkServer.RegisterHandler(MsgType.Connect, OnConnected); NetworkServer.RegisterHandler(MsgType.Disconnect, OnDisconnected); @@ -31,23 +31,30 @@ public class Server : MonoBehaviour { Debug.Log("Server started on port " + port); Term.Println("Server started on port " + port); + + Term.AddCommand("send (message)", "Howl at the darkness of space. Does it echo though?", (args) => { + Term.Println("You: " + args[0]); + SendToAll(PktType.TextMessage, new TextMessage("Server: " + args[0])); + }); } public void HandlePacket(NetworkMessage msg) { switch(msg.msgType) { - case PktType.TestMessage: + case PktType.TextMessage: TextMessage TextMsg = new TextMessage(); TextMsg.Deserialize(msg.reader); - Debug.Log("Received message: " + TextMsg.Message); - Term.Println("Received message: " + TextMsg.Message); + Term.Println(TextMsg.Message); break; default: Debug.LogError("Received an unknown packet, id: " + msg.msgType); Term.Println("Received an unknown packet, id: " + msg.msgType); break; } + } + public void SendToAll(short type, MessageBase message) { + NetworkServer.SendToAll(type, message); } public void OnConnected(NetworkMessage msg) {