TestMQTT.cs 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. using LitJson;
  2. using Newtonsoft.Json.Linq;
  3. using System.Collections;
  4. using System.Collections.Generic;
  5. using System.Text;
  6. using UnityEngine;
  7. using UnityEngine.UI;
  8. public class TestMQTT : MonoSingleton<TestMQTT>
  9. {
  10. public Text text;
  11. public InputField input;
  12. public Button btn;
  13. private void Start()
  14. {
  15. btn.onClick.AddListener(PushMsg);
  16. }
  17. /// <summary>
  18. /// 获取信令
  19. /// </summary>
  20. public void Signal()
  21. {
  22. GameStart.Instance.StartCoroutine(HttpTool.Instance.SendHttp(HttpActionLang.signal_certification, "", SignalCallBack));
  23. // HttpTool.Instance.PostMqtt(HttpAction.signal_certification, "", SignalCallBack);
  24. }
  25. public void SetAccoutInfo(string account)
  26. {
  27. MQTTClient.Instance.account = account;
  28. }
  29. private void SignalCallBack(string msg)
  30. {
  31. Debug.Log(msg);
  32. JObject obj = JObject.Parse(msg);
  33. if (obj["code"].ToString() == "200")
  34. {
  35. HttpActionLang.Instance.mqttSocket = obj["data"]["host"].ToString();
  36. MQTTClient.certification = obj["data"]["certification"].ToString();
  37. MQTTClient.Instance.front = obj["data"]["topicPrefix"].ToString();
  38. MQTTClient.Instance.id = obj["data"]["clientId"].ToString();
  39. SetRoomId("");
  40. //
  41. }
  42. else
  43. {
  44. Debug.LogError("MQTT 获取信令失败 !!!");
  45. }
  46. }
  47. public void SetRoomId(string id)
  48. {
  49. MQTTClient.Instance.roomId = id;
  50. MQTTClient.Instance.roomId = "9527";
  51. MQTTClient.Instance.Connect();
  52. }
  53. public void PushMsg()
  54. {
  55. if(!string.IsNullOrEmpty(input.text))
  56. {
  57. JsonData json = new JsonData();
  58. json["account"] = MQTTClient.Instance.account;
  59. json["Sid"] = "sid";//选择的场景id
  60. json["msg"] = input.text;
  61. MQTTClient.Instance.publish(Encoding.UTF8.GetBytes(json.ToJson()));
  62. input.text = null;
  63. }
  64. else
  65. {
  66. JsonData json = new JsonData();
  67. json["account"] = MQTTClient.Instance.account;
  68. json["Sid"] = "sid";//选择的场景id
  69. json["msg"] = "NULL";
  70. MQTTClient.Instance.publish(Encoding.UTF8.GetBytes(json.ToJson()));
  71. input.text = null;
  72. }
  73. }
  74. }