BaseConnector.cs 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. using System;
  2. using UnityEngine;
  3. using Sfs2X.Core;
  4. public abstract class BaseConnector
  5. {
  6. public GardenSmartFox GardenSmartFox;
  7. public int TcpPort = 9933;
  8. public string Host = "127.0.0.1";
  9. public Action<BaseEvent> onConnectSucceed;
  10. public Action<BaseEvent> onConnectFailed;
  11. public Action<BaseEvent> onConnectionLost;
  12. public Action<bool, BaseEvent> onConnectResult;
  13. public BaseConnector Init(GardenSmartFox smartFox)
  14. {
  15. GardenSmartFox = smartFox;
  16. GardenSmartFox.SmartFox.AddEventListener(SFSEvent.CONNECTION, OnConnection);
  17. GardenSmartFox.SmartFox.AddEventListener(SFSEvent.CONNECTION_LOST, OnConnectionLost);
  18. return this;
  19. }
  20. public abstract void Connect();
  21. public abstract void Disconnect();
  22. public void OnConnection(BaseEvent baseEvent)
  23. {
  24. if ((bool)baseEvent.Params["success"])
  25. {
  26. Debug.Log("Connect succeed");
  27. if (onConnectSucceed != null)
  28. onConnectSucceed.Invoke(baseEvent);
  29. if (onConnectResult != null)
  30. onConnectResult.Invoke(true, baseEvent);
  31. }
  32. else
  33. {
  34. Debug.Log("Connect failed");
  35. if (onConnectFailed != null)
  36. onConnectSucceed.Invoke(baseEvent);
  37. if (onConnectResult != null)
  38. onConnectResult.Invoke(false, baseEvent);
  39. }
  40. }
  41. public void OnConnectionLost(BaseEvent baseEvent)
  42. {
  43. Debug.Log("ConnectionLost : " + (string)baseEvent.Params["reason"]);
  44. if (onConnectionLost != null)
  45. onConnectionLost.Invoke(baseEvent);
  46. }
  47. }