Browse Source

修改退出房间 只有在rtc房间内点击退出可以退出

DGJ 1 year ago
parent
commit
d22dc7627f

+ 3 - 3
Assets/Game/ShowLogin/LangChaoLogin.cs

@@ -37,7 +37,7 @@ namespace GHZLangChao
             emptypas.onClick.AddListener(() => { mPassword_Input.text = string.Empty; });
             //mAccountStr = "13910723157";
             //mPasswordStr = "1";
-            mAccountStr = "lisongnan";
+            mAccountStr = "guohaipeng";
             mPasswordStr = "13579Wp!#%&(";
 #if UNITY_EDITOR
             // OnClickLogin();
@@ -126,8 +126,8 @@ namespace GHZLangChao
                 MQTTManager.Instance.roleId = obj["data"]["roleId"].ToString();
               //  MQTTManager.Instance.email = obj["data"]["email"].ToString();
                 MQTTManager.Instance.phone = obj["data"]["phone"].ToString();
-                MQTTManager.Instance.resourcePool = obj["data"]["resourcePool"].ToString();
-                //  MQTTManager.Instance.resourcePoolId = int.Parse(obj["data"]["resourcePoolId"].ToString());
+              //  MQTTManager.Instance.resourcePool = obj["data"]["resourcePool"].ToString();
+                  MQTTManager.Instance.resourcePoolId = obj["data"]["resourcePoolId"].ToString();
                 //   MQTTManager.Instance.expertType = obj["data"]["expertType"].ToString();
                 //  MQTTManager.Instance.room = obj["data"]["room"].ToString();         
                 MQTTManager.Instance.id = obj["data"]["id"].ToString();

+ 1 - 1
Assets/Game/ShowLogin/LoginPanel.prefab

@@ -970,7 +970,7 @@ MonoBehaviour:
   m_OnCullStateChanged:
     m_PersistentCalls:
       m_Calls: []
-  m_text: 1.0.1109.1037
+  m_text: 1.0.1212.1038
   m_isRightToLeft: 0
   m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
   m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}

+ 3 - 3
Assets/Game/ShowSupport/SupportControl.cs

@@ -87,8 +87,8 @@ public class SupportControl : AbstractController
     }
     public void Home()
     {
-        if (allotPanel.gameObject.activeSelf)
-            LeaveRoom();
+       // if (allotPanel.gameObject.activeSelf)
+           // LeaveRoom();
         InitPanel(true);
         ScenesManager.Instance.showWindow(ScenesManager.SceneType.ShowChoose);
 
@@ -139,7 +139,7 @@ public class SupportControl : AbstractController
         {
             case RTCEnum.OFF:
             case RTCEnum.Online:
-                RTCRoomManager.Instance.LeaveChannel();
+              //  RTCRoomManager.Instance.LeaveChannel();
                 break;
             case RTCEnum.ExpertOnline:
                 break;

+ 1 - 1
Assets/Scripts/Data/DataItem.cs

@@ -71,7 +71,7 @@ public class DataItem : MonoBehaviour
     public List<DeviceInfo_Item> DeviceInfoList = new List<DeviceInfo_Item>();
     public void SetDeviceParametersData(List<DeviceParameters> DeviceParameterList)
     {
-        Debug.Log(DeviceParameterList.Count);
+     //   Debug.Log(DeviceParameterList.Count);
         this.DeviceParameterList = DeviceParameterList;
         for (int i = 0; i < DeviceInfoList.Count;i++)
         {

+ 2 - 2
Assets/Scripts/MQTT/MQTTClient.cs

@@ -61,8 +61,8 @@ public class MQTTClient : MonoSingleton<MQTTClient>
     {
         // Subscribe(MQTTManager.Instance.front + "online/" + MQTTManager.Instance.phone);
 
-       Subscribe(MQTTManager.Instance.front + "personnel/" + MQTTManager.Instance.resourcePool);
-       // Subscribe(MQTTManager.Instance.front + "personnel/" + MQTTManager.Instance.resourcePoolId);
+       //Subscribe(MQTTManager.Instance.front + "personnel/" + MQTTManager.Instance.resourcePool);
+        Subscribe(MQTTManager.Instance.front + "personnel/" + MQTTManager.Instance.resourcePoolId);
         Subscribe(MQTTManager.Instance.front + "online/" + MQTTManager.Instance.id);
     }
 

+ 26 - 5
Assets/Scripts/MQTT/MQTTManager.cs

@@ -22,8 +22,8 @@ public class MQTTManager : MonoSingleton<MQTTManager>,IController
     public string email;
     public string phone;
     public string roleId;
-    public string resourcePool;
-    public int resourcePoolId;
+  //  public string resourcePool;
+    public string resourcePoolId;
     public string expertType;
     public string _username;
     public string room;
@@ -89,7 +89,8 @@ public class MQTTManager : MonoSingleton<MQTTManager>,IController
             MQTTManager.Instance.roleId = obj["data"]["roleId"].ToString();
             MQTTManager.Instance.email = obj["data"]["email"].ToString();
             MQTTManager.Instance.phone = obj["data"]["phone"].ToString();
-            MQTTManager.Instance.resourcePool = obj["data"]["resourcePool"].ToString();
+         //   MQTTManager.Instance.resourcePool = obj["data"]["resourcePool"].ToString();
+            MQTTManager.Instance.resourcePoolId = obj["data"]["resourcePoolId"].ToString();
             MQTTManager.Instance.expertType = obj["data"]["expertType"].ToString();
         }
         else
@@ -140,6 +141,8 @@ public class MQTTManager : MonoSingleton<MQTTManager>,IController
     /// <param name="msg"></param>
     public void PushMsg(string channelID, string msg)
     {
+
+        Debug.Log("DGJ ===> MQTT Test "+ msg);
         if (!string.IsNullOrEmpty(msg))
         {
             MQTTClient.Instance.publish(channelID, Encoding.UTF8.GetBytes(msg));
@@ -179,11 +182,12 @@ public class MQTTManager : MonoSingleton<MQTTManager>,IController
                         data["personnel"] = new JsonData();
                         data["personnel"]["id"] = MQTTManager.Instance.id;
                         data["personnel"]["name"] = MQTTManager.Instance._username;
-                        data["personnel"]["resourcePoo1"] = MQTTManager.Instance.resourcePool;
+                        //data["personnel"]["resourcePoo1"] = MQTTManager.Instance.resourcePool;
+                        data["personnel"]["resourcePoolId"] = MQTTManager.Instance.resourcePoolId;
                         data["personnel"]["room"] = MQTTManager.Instance.room;
                         data["personnel"]["phone"] = MQTTManager.Instance.phone;
                         // 用MQTT 向中考发送邀请
-                        MQTTManager.Instance.PushMsg(MQTTManager.Instance.front + "online/" + id, data.ToJson());
+                        MQTTManager.Instance.PushMsg(MQTTManager.Instance.front + "online/" + RTCRoomManager.Instance.controlId, data.ToJson());
                     }
                     else // 不在房间内,创建房间后 发送邀请
                     {
@@ -238,6 +242,23 @@ public class MQTTManager : MonoSingleton<MQTTManager>,IController
             case "clearRemark":
                 ArrowList.Instance.DeleteAll();
                 break;
+
+            case "leave":
+                // 退出房间
+                string roleId = obj["roleId"].ToString();
+                if (roleId == "2")
+                {
+
+                //    RTCRoomManager.Instance.UserOffline(UserEnum.Expert);
+
+                }
+
+                if (roleId == "1")
+                {
+                //    RTCRoomManager.Instance.UserOffline(UserEnum.Conterl);
+                }
+
+                break;
             default:
                 break;
         }

+ 1 - 1
Assets/Scripts/Managers/MachineRoomManager.cs

@@ -360,7 +360,7 @@ public class MachineRoomManager : MonoSingleton<MachineRoomManager>
         {
             GameObject obj = GameObject.Instantiate(cabinetObj, transform);
             obj.transform.localScale = new Vector3(data.cabinetW, data.cabinetH, obj.transform.localScale.z);
-            Debug.Log(data.cabinetH + "    " + data.cabinetW);
+         //   Debug.Log(data.cabinetH + "    " + data.cabinetW);
             obj.name =i.ToString();
             //   Debug.Log(obj.name + "  " + new Vector3(j * (data.cabinetW + data.intervalW), 0, i * data.intervalL));
             obj.transform.localPosition = new Vector3((i%data.list)*(data.cabinetW + data.intervalW), 0, (i/data.list) * data.intervalL);

+ 82 - 64
Assets/Scripts/RTC/OnWebSocketMsg.cs

@@ -27,83 +27,101 @@ public class OnWebSocketMsg : MonoSingleton<OnWebSocketMsg>
             case SignalResponse.MessageOneofCase.None:
                 break;
             case SignalResponse.MessageOneofCase.Join:
-              
-                break;
-            case SignalResponse.MessageOneofCase.Answer:
-                break;
-            case SignalResponse.MessageOneofCase.Offer:
-                break;
-            case SignalResponse.MessageOneofCase.Trickle:
-                break;
-            case SignalResponse.MessageOneofCase.Update:
-                if (response.Update.Participants != null)
-                {
 
-                    string msg = response.Update.Participants.ToString();
-                    msg = msg.Remove(0, 1);
-                    msg = msg.Remove(msg.Length - 1, 1);
-                  //  Debug.Log("DGJ ==> " + msg);
+                string msg = response.Join.Participant.Metadata.ToString();
+                //msg = msg.Remove(0, 1);
+                //msg = msg.Remove(msg.Length - 1, 1);
+                //  Debug.Log("DGJ ==> " + msg);
 
-                    JObject obj = JObject.Parse(msg);
+                //JObject obj = JObject.Parse(msg);
 
 
-                    string metadata = obj["metadata"].ToString();
-                  //  Debug.Log("DGJ == > metadata " + metadata);
-                    metadata = metadata.Replace('\"', '"');
-                    Debug.Log("DGJ == > metadata " + metadata);
+                //string metadata = obj["metadata"].ToString();
+                string metadata = msg;
+                //  Debug.Log("DGJ == > metadata " + metadata);
+                metadata = metadata.Replace('\"', '"');
+                Debug.Log("DGJ == > metadata " + metadata);
 
-                    JObject obj2 = JObject.Parse(metadata);
-                    Debug.Log("DGJ  ===> roleId  " + obj2["roleId"].ToString());
+                JObject obj2 = JObject.Parse(metadata);
+                Debug.Log("DGJ  ===> roleId  " + obj2["roleId"].ToString());
 
-                    string state = obj["state"].ToString();
+                //string state = obj["state"].ToString();
 
-                    if (state == "DISCONNECTED")
-                    {
-                        if (obj2["roleId"].ToString() == "2")
-                        {
+                if (obj2["roleId"].ToString() == "2")
+                {
+                    string uid = response.Join.Participant.Sid.ToString();
 
-                            RTCRoomManager.Instance.UserOffline(UserEnum.Expert);
+                    if (ScenesManager.Instance.getWindow() == ScenesManager.SceneType.ShowRTC)
+                    {
+                        ScenesManager.Instance.showWindow(ScenesManager.SceneType.ShowRoom);
+                    }
+                    // 专家进入房间  并且当前是在远程协助页面
+                    RTCRoomManager.Instance.ExpertJonin(uid);
+                    RTCRoomManager.Instance.UserJoined(UserEnum.Expert, obj2);
 
-                        }
+                }
 
-                        if (obj2["roleId"].ToString() == "1")
-                        {
-                            RTCRoomManager.Instance.UserOffline(UserEnum.Conterl);
-                        }
+                if (obj2["roleId"].ToString() == "1")
+                {
+                    RTCRoomManager.Instance.UserJoined(UserEnum.Conterl, obj2);
+                }
 
-                        
-                    }
-                    else if (state == "ACTIVE")
-                    {
-                        if (obj2["roleId"].ToString() == "2")
-                        {
-                            string uid = obj["sid"].ToString();
-
-                            if (ScenesManager.Instance.getWindow() == ScenesManager.SceneType.ShowRTC)
-                            {
-                                ScenesManager.Instance.showWindow(ScenesManager.SceneType.ShowRoom);
-                            }
-                            // 专家进入房间  并且当前是在远程协助页面
-                            RTCRoomManager.Instance.ExpertJonin(uid);
-                            RTCRoomManager.Instance.UserJoined(UserEnum.Expert, obj2);
-
-                        }// 
-
-                        if (obj2["roleId"].ToString() == "1")
-                        {
-                            RTCRoomManager.Instance.UserJoined(UserEnum.Conterl, obj2);
-                        }
-
-                        if (obj2["roleId"].ToString() == "3")
-                        {
-                            RTCRoomManager.Instance.UserJoined(UserEnum.Player);
-                            //  RTCRoomManager.Instance.OnLocalUserJoined();
-                        }
-                    }
-                
-                    
+                if (obj2["roleId"].ToString() == "3")
+                {
+                    RTCRoomManager.Instance.UserJoined(UserEnum.Player);
+                    //  RTCRoomManager.Instance.OnLocalUserJoined();
                 }
 
+                // 
+                //if (response.Update.Participants != null)
+                //{
+
+
+
+                //    if (obj2["roleId"].ToString() == "1")
+                //    {
+                //        RTCRoomManager.Instance.UserJoined(UserEnum.Conterl, obj2);
+                //    }
+
+                //    if (obj2["roleId"].ToString() == "3")
+                //    {
+                //        RTCRoomManager.Instance.UserJoined(UserEnum.Player);
+                //        //  RTCRoomManager.Instance.OnLocalUserJoined();
+                //    }
+
+                //    //if (state == "DISCONNECTED")
+                //    //{
+                //    //    //if (obj2["roleId"].ToString() == "2")
+                //    //    //{
+
+                //    //    //    RTCRoomManager.Instance.UserOffline(UserEnum.Expert);
+
+                //    //    //}
+
+                //    //    //if (obj2["roleId"].ToString() == "1")
+                //    //    //{
+                //    //    //    RTCRoomManager.Instance.UserOffline(UserEnum.Conterl);
+                //    //    //}
+
+
+                //    //}
+                //    //else if (state == "ACTIVE")
+                //    //{
+
+                //    //}
+
+
+                //}
+
+                break;
+            case SignalResponse.MessageOneofCase.Answer:
+                break;
+            case SignalResponse.MessageOneofCase.Offer:
+                break;
+            case SignalResponse.MessageOneofCase.Trickle:
+                break;
+            case SignalResponse.MessageOneofCase.Update:
+              
                 break;
             case SignalResponse.MessageOneofCase.TrackPublished:
                 break;

+ 6 - 3
Assets/Scripts/RTC/RTCRoomManager.cs

@@ -108,7 +108,9 @@ public class RTCRoomManager : MonoSingleton<RTCRoomManager>, IController
             obj["personnel"] = new JsonData();
             obj["personnel"]["id"] = MQTTManager.Instance.id;
             obj["personnel"]["name"] = MQTTManager.Instance._username;
-            obj["personnel"]["resourcePoo1"] = MQTTManager.Instance.resourcePool;
+          //  obj["personnel"]["resourcePoo1"] = MQTTManager.Instance.resourcePool;
+
+            obj["personnel"]["resourcePoolId"] = MQTTManager.Instance.resourcePoolId;
             obj["personnel"]["room"] = MQTTManager.Instance.room;
             obj["personnel"]["phone"] = MQTTManager.Instance.phone;
             // 用MQTT 向中考发送邀请
@@ -122,7 +124,7 @@ public class RTCRoomManager : MonoSingleton<RTCRoomManager>, IController
             JsonData data = new JsonData();
             data["roomId"] = mRTCRoomInfo.roomId.ToString();
             data["questionCategory"] = (int)question;
-            data["deviceUniqueId"] = SystemInfo.deviceUniqueIdentifier;
+            data["deviceUniqueId"] = GetAndroidSNIEMI.GetDeviceUniqueIdMD5();
             Debug.Log("DGJ   =====>  " + data.ToJson());
 
             StartCoroutine(HttpTool.Instance.SendHttp(HttpActionLang.apply, data.ToJson(), message =>
@@ -287,7 +289,7 @@ public class RTCRoomManager : MonoSingleton<RTCRoomManager>, IController
         {
             Debug.Log(" GETWindow Scenes   " + ScenesManager.Instance.getWindow());
             // 退出房间
-            LeaveChannel();
+        //    LeaveChannel();
         }
 
         //if(rtcState == RTCEnum.Online && !(ScenesManager.Instance.getWindow() == ScenesManager.SceneType.ShowRoom || ScenesManager.Instance.getWindow() == ScenesManager.SceneType.ShowRTC))
@@ -301,6 +303,7 @@ public class RTCRoomManager : MonoSingleton<RTCRoomManager>, IController
     public void LeaveChannel()
     {
         Debug.LogError(" RTCRoomManager  退出房间");
+        Debug.Log("DGJ ===> MQTT Test 退出房间 ");
         MQTTManager.Instance.UnSubscribe(MQTTManager.Instance.roomId);
         RTCManager.Instance.LeaveChannel();
         rtcState = RTCEnum.OFF;

+ 79 - 17
Assets/Scripts/Tool/GetAndroidSNIEMI.cs

@@ -1,6 +1,9 @@
 using System;
 using System.Collections;
 using System.Collections.Generic;
+using System.IO;
+using System.Security.Cryptography;
+using System.Text;
 using UnityEngine;
 
 public class GetAndroidSNIEMI : MonoBehaviour
@@ -9,41 +12,100 @@ public class GetAndroidSNIEMI : MonoBehaviour
     void Start()
     {
 
-     
+
 
         //AndroidJavaObject tm = new AndroidJavaObject("android.telephony.TelephonyManager");
         //string imei = tm.Call<string>("getDeviceId");
         //Debug.Log("IMEI: " + imei);
         //  UILogManager.Instance.text3.text += tm;
-    
+
         //AndroidJavaObject jo = new AndroidJavaObject("android.os.Build");
         //string serial = jo.GetStatic<string>("SERIAL");
         //Debug.Log("本机的SN码为:" + serial);
-       // UILogManager.Instance.text3.text = serial;
+        // UILogManager.Instance.text3.text = serial;
 
-       
+        StartCoroutine(PutDeviceID());
+    }
 
-     
 
-     
+    private IEnumerator PutDeviceID()
+    {
+        yield return new WaitForSeconds(3);
 
-      
+        string id = GetDeviceUniqueIdMD5();
+        Debug.Log("DeviceId  " + id);
+        UILogManager.Instance.text3.text = id;
     }
 
 
-    float times = 11995;
+    public static string GetDeviceUniqueIdMD5()
+    {
+        string id = SystemInfo.deviceUniqueIdentifier;
+        //return Encrypt(id, Encoding.UTF8);
+        return EncryptMD5_16(id);
+    }
+
+    /// <summary>
+    /// 获取字符串MD5值
+    /// </summary>
+    /// <param name="sText"></param>
+    /// <param name="encoding">编码方式 utf8</param>
+    /// <param name="uppercase">true 大写;false 小写</param>
+    /// <returns></returns>
+    private static string Encrypt(string sText, Encoding encoding, bool uppercase = false)
+    {
+        byte[] buffer = encoding.GetBytes(sText);
+        string s = Encrypt(buffer);
+        //if (!uppercase)
+        //    s = s.ToLower();
+        return s;
+    }
 
-    // Update is called once per frame
-    void Update()
+    /// <summary>
+    /// 获取字符串MD5值
+    /// </summary>
+    /// <param name="buffer"></param>
+    /// <returns></returns>
+    private static string Encrypt(byte[] buffer)
     {
-        times += Time.deltaTime;
-        if (times>12000)
+        //使用MD5这个抽象类的Creat()方法创建一个虚拟的MD5类的对象。
+        using (MD5 md5 = MD5.Create())
         {
-            times = 0;
-            string androidID = SystemInfo.deviceUniqueIdentifier;
-            Debug.Log("Android ID: " + androidID);
-            UILogManager.Instance.text3.text = androidID;
+            //使用MD5实例的ComputerHash()方法处理字节数组。
+            byte[] bufferNew = md5.ComputeHash(buffer);
+
+            string s = BitConverter.ToString(bufferNew, 0, bufferNew.Length);
+            return s.Replace("-", "");
         }
-        
+    }
+
+    /// <summary>
+    /// 获取流MD5值
+    /// </summary>
+    /// <param name="inputStream"></param>
+    /// <returns></returns>
+    private static string Encrypt(Stream inputStream)
+    {
+        using (MD5 mi = MD5.Create())
+        {
+            //开始加密
+            byte[] bufferNew = mi.ComputeHash(inputStream);
+            string s = BitConverter.ToString(bufferNew, 0, bufferNew.Length);
+            return s.Replace("-", "");
+        }
+    }
+
+
+    /// <summary>
+    /// MD5 16位加密
+    /// </summary>
+    /// <param name="_encryptContent">需要加密的内容</param>
+    /// <returns></returns>
+    private static string EncryptMD5_16(string _encryptContent)
+    {
+        var md5 = new MD5CryptoServiceProvider();
+        string t2 = BitConverter.ToString(md5.ComputeHash(Encoding.Default.GetBytes(_encryptContent)), 4, 8);
+        t2 = t2.Replace("-", "");
+        return t2;
     }
 }

+ 2 - 2
Assets/Scripts/UI/AllotPanel.cs

@@ -27,8 +27,8 @@ public class AllotPanel : MonoSingleton<AllotPanel>
             times = 0;
             Debug.LogError("  申请协助超时!!!! ");
 
-            if (RTCRoomManager.Instance.rtcState != RTCEnum.OFF)
-                RTCRoomManager.Instance.LeaveChannel();
+            //if (RTCRoomManager.Instance.rtcState != RTCEnum.OFF)
+            //    RTCRoomManager.Instance.LeaveChannel();
         }
 
     }

+ 2 - 2
Assets/Scripts/UICallManager.cs

@@ -90,7 +90,7 @@ public class UICallManager : MonoSingleton<UICallManager>,IController
     public void OntimeOut()
     {
         // 退出房间
-        RTCRoomManager.Instance.LeaveChannel();
+   //     RTCRoomManager.Instance.LeaveChannel();
 
         // 改文字UI
         //   AllotPanel.Instance.SetAllotText("");
@@ -105,7 +105,7 @@ public class UICallManager : MonoSingleton<UICallManager>,IController
         {
             case RTCEnum.OFF:
             case RTCEnum.Online:
-                RTCRoomManager.Instance.LeaveChannel();
+          //      RTCRoomManager.Instance.LeaveChannel();
                 break;
             case RTCEnum.ExpertOnline:
                 break;

+ 17 - 1
Assets/XR/Settings/OpenXR Package Settings.asset

@@ -223,10 +223,26 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: 9f0ebc320a151d3408ea1e9fce54d40e, type: 3}
   m_Name: OpenXR Package Settings
   m_EditorClassIdentifier: 
-  Keys: 0100000007000000
+  Keys: 01000000070000000d000000
   Values:
   - {fileID: -3945450796701081131}
   - {fileID: -6724271008176559649}
+  - {fileID: 869143972089473654}
+--- !u!114 &869143972089473654
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: b5a1f07dc5afe854f9f12a4194aca3fb, type: 3}
+  m_Name: WebGL
+  m_EditorClassIdentifier: 
+  features: []
+  m_renderMode: 1
+  m_depthSubmissionMode: 0
 --- !u!114 &1042305656835365408
 MonoBehaviour:
   m_ObjectHideFlags: 0