Demo.cs 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using System.Net;
  5. using System.Net.Sockets;
  6. using System.Text;
  7. using System.Threading;
  8. using System.Threading.Tasks;
  9. using UnityEngine;
  10. using ZLog;
  11. public class Demo : MonoBehaviour
  12. {
  13. const float COUNT_DOWN_SECOND = 2f;
  14. //string m_Ip = "192.168.0.121";
  15. string m_Ip = "8.134.36.175";
  16. int m_Port = 9305;
  17. float reconnectTime = 0;
  18. private void Start()
  19. {
  20. // 设置日志的Level,屏蔽Socket的部分日志。设到2以下,查看所有日志
  21. Options.Instance.LogLevel = 3;
  22. //Log.Verbose = false;
  23. // 在主线程初始化ZLog
  24. //Log.Debug("");
  25. // 连接服务器
  26. SimpleSocketManager.Connect(m_Ip, m_Port);
  27. // 发送心跳包消息的测试
  28. StartCoroutine(SendLoop());
  29. }
  30. private void Update()
  31. {
  32. if (SimpleSocketManager.Update() != ZSocket.ErrorCode.ERR_Success)
  33. {
  34. // 发生错误,重连处理
  35. if (Time.time > reconnectTime)
  36. {
  37. Debug.LogError($"Demo Reconnect ErrorCode: {SimpleSocketManager.ErrorCode}");
  38. SimpleSocketManager.Connect(m_Ip, m_Port);
  39. reconnectTime = Time.time + 1f;
  40. }
  41. }
  42. }
  43. private void OnDestroy()
  44. {
  45. // 断开与服务器的连接
  46. SimpleSocketManager.Disconnect();
  47. }
  48. IEnumerator SendLoop()
  49. {
  50. int i = 1;
  51. //while (i > 0)
  52. while (true)
  53. {
  54. i--;
  55. for (int j = 0; j < 1; ++j)
  56. {
  57. // 发送不需要回复的消息
  58. //Debug.Log($"Demo Send {SimpleSocketManager.ErrorCode}");
  59. //SimpleSocketManager.Send( "HEARTBEAT", @"{""ping"":true}");
  60. // 发送需要回复的RPC消息,结果通过回调获取
  61. Debug.Log($"Demo Rpc {SimpleSocketManager.ErrorCode}");
  62. SimpleSocketManager.Call("HEARTBEAT_REQ", @"{""ping"":true}", (err, msg) =>
  63. {
  64. if (err != ZSocket.ErrorCode.ERR_Success)
  65. {
  66. Debug.LogError($"Demo Rpc Error: {err} {msg}");
  67. return;
  68. }
  69. Debug.Log($"Demo Recv {msg}");
  70. });
  71. }
  72. yield return new WaitForSeconds(10f);
  73. //yield return new WaitForEndOfFrame();
  74. }
  75. }
  76. }