NetHandshakeMsg.cs 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using Unity.Networking.Transport;
  5. namespace KairoEngine.Multiplayer
  6. {
  7. public class NetHandshakeMsg : NetMsg
  8. {
  9. public override uint code { get { return (uint)NetOpCode.Handshake; }}
  10. public string playerName = "";
  11. public NetHandshakeMsg() {}
  12. public override void Serialize(ref DataStreamWriter writer)
  13. {
  14. writer.WriteByte((byte)code);
  15. writer.WriteFixedString64(playerName);
  16. }
  17. public override void Deserialize(ref DataStreamReader reader)
  18. {
  19. playerName = reader.ReadFixedString64().ToString();
  20. }
  21. public override void SendMessage(ServerBehaviour server, NetMsg netMsg, ref DataStreamWriter writer, int clientId)
  22. {
  23. if(server == null) return;
  24. NetHandshakeMsg netHandshakeMsg = (NetHandshakeMsg)netMsg;
  25. string text = $"Accepting handshake from client (ID {clientId}, playerName = {netHandshakeMsg.playerName})";
  26. if(server.debug) Debug.Log(text);
  27. NetMsgEvents.Trigger($"{server.eventStreamName}_AcceptingHandshake", text, clientId, code, netHandshakeMsg);
  28. netHandshakeMsg.Serialize(ref writer);
  29. }
  30. public override void SendMessage(ClientBehaviour client, NetMsg netMsg, ref DataStreamWriter writer )
  31. {
  32. Debug.Log("Testing!");
  33. if(client == null) return;
  34. NetHandshakeMsg netHandshakeMsg = (NetHandshakeMsg)netMsg;
  35. string text = $"Sending handshake (playerName = {netHandshakeMsg.playerName})";
  36. if(client.debug) Debug.Log(text);
  37. NetMsgEvents.Trigger($"{client.eventStreamName}_SendingHandshake", text, -1, code, netHandshakeMsg);
  38. netHandshakeMsg.Serialize(ref writer);
  39. }
  40. public override NetMsg ReceiveMessage(ServerBehaviour server, ref DataStreamReader stream, int clientId = -1)
  41. {
  42. NetHandshakeMsg netHandshakeMsg = new NetHandshakeMsg();
  43. netHandshakeMsg.Deserialize(ref stream);
  44. return netHandshakeMsg;
  45. }
  46. public override NetMsg ReceiveMessage(ClientBehaviour client, ref DataStreamReader stream)
  47. {
  48. NetHandshakeMsg netHandshakeMsg = new NetHandshakeMsg();
  49. netHandshakeMsg.Deserialize(ref stream);
  50. return netHandshakeMsg;
  51. }
  52. public override void ReadMessage(ServerBehaviour server, int clientId = -1)
  53. {
  54. string text = $"Received handshake from client (ID {clientId}, playerName = {playerName})";
  55. if(server.debug) Debug.Log(text);
  56. NetMsgEvents.Trigger($"{server.eventStreamName}_HandshakeReceived", text, clientId, code, this);
  57. }
  58. public override void ReadMessage(ClientBehaviour client)
  59. {
  60. string text = $"Server accepted handshake (playerName = {playerName})";
  61. if(client.debug) Debug.Log(text);
  62. NetMsgEvents.Trigger($"{client.eventStreamName}_HandshakeAccepted", text, -1, code, this);
  63. }
  64. }
  65. }