|
@@ -7,6 +7,7 @@ using System.Text;
|
|
using UnityEngine;
|
|
using UnityEngine;
|
|
using static LangChaoRommMinIo;
|
|
using static LangChaoRommMinIo;
|
|
using Blue;
|
|
using Blue;
|
|
|
|
+using uPLibrary.Networking.M2Mqtt.Messages;
|
|
|
|
|
|
public class MQTTManager : MonoSingleton<MQTTManager>,IController
|
|
public class MQTTManager : MonoSingleton<MQTTManager>,IController
|
|
{
|
|
{
|
|
@@ -29,6 +30,12 @@ public class MQTTManager : MonoSingleton<MQTTManager>,IController
|
|
public string room;
|
|
public string room;
|
|
public static string certification;
|
|
public static string certification;
|
|
|
|
|
|
|
|
+ public string topiceNavigation;
|
|
|
|
+ public string topiceSync;
|
|
|
|
+ public string topiceClose;
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ public bool isCreateRoom = false;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -36,11 +43,12 @@ public class MQTTManager : MonoSingleton<MQTTManager>,IController
|
|
{
|
|
{
|
|
GameStart.Instance.StartCoroutine(HttpTool.Instance.SendHttp(HttpActionLang.signal_certification, "", SignalCallBack));
|
|
GameStart.Instance.StartCoroutine(HttpTool.Instance.SendHttp(HttpActionLang.signal_certification, "", SignalCallBack));
|
|
|
|
|
|
-
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
-
|
|
|
|
public void SetAccoutInfo(string account)
|
|
public void SetAccoutInfo(string account)
|
|
{
|
|
{
|
|
MQTTManager.Instance.account = account;
|
|
MQTTManager.Instance.account = account;
|
|
@@ -58,9 +66,21 @@ public class MQTTManager : MonoSingleton<MQTTManager>,IController
|
|
MQTTManager.Instance.front = obj["data"]["topicPrefix"].ToString();
|
|
MQTTManager.Instance.front = obj["data"]["topicPrefix"].ToString();
|
|
MQTTManager.Instance.clientId = obj["data"]["clientId"].ToString();
|
|
MQTTManager.Instance.clientId = obj["data"]["clientId"].ToString();
|
|
MQTTManager.Instance.username = obj["data"]["username"].ToString();
|
|
MQTTManager.Instance.username = obj["data"]["username"].ToString();
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ if (!string.IsNullOrEmpty( obj["data"]["uinoTopics"].ToString()))
|
|
|
|
+ {
|
|
|
|
+ topiceNavigation = obj["data"]["uinoTopics"]["navigation"].ToString();
|
|
|
|
+ topiceSync = obj["data"]["uinoTopics"]["sync"].ToString();
|
|
|
|
+ topiceClose = obj["data"]["uinoTopics"]["close"].ToString();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
MQTTClient.Instance.Connect();
|
|
MQTTClient.Instance.Connect();
|
|
|
|
|
|
-
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
}
|
|
}
|
|
else
|
|
else
|
|
{
|
|
{
|
|
@@ -269,13 +289,153 @@ public class MQTTManager : MonoSingleton<MQTTManager>,IController
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
|
|
|
|
- if (obj["image_data"] != null)
|
|
+ if (obj["image_data"]!=null&&!string.IsNullOrEmpty( obj["image_data"].ToString()))
|
|
{
|
|
{
|
|
-
|
|
+ UILogManager.Instance.text2.text = msg;
|
|
SynPlayerTransform.Instance.isPushPos = true;
|
|
SynPlayerTransform.Instance.isPushPos = true;
|
|
|
|
|
|
LangChaoMailManager.Instance.ReceiverMail(obj);
|
|
LangChaoMailManager.Instance.ReceiverMail(obj);
|
|
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ public void Received(MqttMsgPublishEventArgs MsgData)
|
|
|
|
+ {
|
|
|
|
+ string msg = Encoding.UTF8.GetString(MsgData.Message);
|
|
|
|
+ JObject obj = JObject.Parse(msg);
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ if (obj["action"] != null)
|
|
|
|
+ switch (obj["action"].ToString())
|
|
|
|
+ {
|
|
|
|
+ case "timeout":
|
|
|
|
+ UICallManager.Instance.EventTimeOut();
|
|
|
|
+ break;
|
|
|
|
+
|
|
|
|
+ case "invite":
|
|
|
|
+
|
|
|
|
+ if (obj["control"] != null)
|
|
|
|
+ {
|
|
|
|
+ string id = obj["control"]["id"].ToString();
|
|
|
|
+ RTCRoomManager.Instance.controlId = id;
|
|
|
|
+
|
|
|
|
+ if (RTCRoomManager.Instance.rtcState != RTCEnum.OFF)
|
|
|
|
+ {
|
|
|
|
+ JsonData data = new JsonData();
|
|
|
|
+ data["action"] = "invite";
|
|
|
|
+ data["rtcRoom"] = RTCRoomManager.Instance.mRTCRoomInfo.roomId.ToString();
|
|
|
|
+ data["personnel"] = new JsonData();
|
|
|
|
+ data["personnel"]["id"] = MQTTManager.Instance.id;
|
|
|
|
+ data["personnel"]["name"] = MQTTManager.Instance._username;
|
|
|
|
+
|
|
|
|
+ data["personnel"]["resourcePoolId"] = MQTTManager.Instance.resourcePoolId;
|
|
|
|
+ data["personnel"]["room"] = MQTTManager.Instance.room;
|
|
|
|
+ data["personnel"]["phone"] = MQTTManager.Instance.phone;
|
|
|
|
+
|
|
|
|
+ MQTTManager.Instance.PushMsg(MQTTManager.Instance.front + "online/" + RTCRoomManager.Instance.controlId, data.ToJson());
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ RTCRoomManager.Instance.isInvite = true;
|
|
|
|
+ UICallManager.Instance.EventInvite(obj["control"].ToString(), "");
|
|
|
|
+ Debug.Log(phone);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ Debug.LogError(" 非控制台邀请 ");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ break;
|
|
|
|
+
|
|
|
|
+ case "noExpert":
|
|
|
|
+
|
|
|
|
+ UICallManager.Instance.EventNoExpert();
|
|
|
|
+ break;
|
|
|
|
+ case "chat":
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ string username = obj["from"].ToString();
|
|
|
|
+ string chatMsg = obj["chatMessage"].ToString();
|
|
|
|
+
|
|
|
|
+ FileList.Instance.AddMsgItem(null, username, chatMsg);
|
|
|
|
+
|
|
|
|
+ break;
|
|
|
|
+ case "share":
|
|
|
|
+
|
|
|
|
+ Debug.Log(" DGJ ===> share " + obj["chatMessage"].ToString());
|
|
|
|
+
|
|
|
|
+ FileConfig fileConfig = JsonConvert.DeserializeObject<FileConfig>(obj["chatMessage"].ToString());
|
|
|
|
+ fileConfig.From = obj["from"].ToString();
|
|
|
|
+
|
|
|
|
+ Debug.Log(" DGJ ===> FileConfig " + JsonConvert.SerializeObject(fileConfig));
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ FileList.Instance.AddItem(fileConfig);
|
|
|
|
+ break;
|
|
|
|
+ case "remark":
|
|
|
|
+ float Valuex = float.Parse(obj["chatMessage"]["x"].ToString());
|
|
|
|
+ float Valuey = float.Parse(obj["chatMessage"]["y"].ToString());
|
|
|
|
+
|
|
|
|
+ ArrowList.Instance.AddArrow(Valuex, Valuey);
|
|
|
|
+ break;
|
|
|
|
+ case "clearRemark":
|
|
|
|
+ ArrowList.Instance.DeleteAll();
|
|
|
|
+ break;
|
|
|
|
+
|
|
|
|
+ case "leave":
|
|
|
|
+
|
|
|
|
+ string roleId = obj["roleId"].ToString();
|
|
|
|
+ if (roleId == "2")
|
|
|
|
+ {
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (roleId == "1")
|
|
|
|
+ {
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ break;
|
|
|
|
+ default:
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ switch (MsgData.Topic)
|
|
|
|
+ {
|
|
|
|
+ case "yunyi/coordinate/close":
|
|
|
|
+ if (obj["action"] != null&& (obj["action"].ToString()== "stop"))
|
|
|
|
+ {
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ SynPlayerTransform.Instance.isPushPos = false;
|
|
|
|
+
|
|
|
|
+ MailUIContent.Instance.CloseSync.SetActive(false);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ break;
|
|
|
|
+ case "yunyi/navigation/diagram":
|
|
|
|
+ if (obj["image_data"] != null && !string.IsNullOrEmpty(obj["image_data"].ToString()))
|
|
|
|
+ {
|
|
|
|
+ UILogManager.Instance.text2.text = msg;
|
|
|
|
+ SynPlayerTransform.Instance.isPushPos = true;
|
|
|
|
+ MailUIContent.Instance.CloseSync.SetActive(true);
|
|
|
|
+ LangChaoMailManager.Instance.ReceiverMail(obj);
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
|
|
+ default:
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ }
|
|
}
|
|
}
|