Browse Source

更新监测其他用户进入房间

DGJ 1 year ago
parent
commit
5af04ea473
2 changed files with 115 additions and 63 deletions
  1. 112 60
      Assets/Scripts/RTC/OnWebSocketMsg.cs
  2. 3 3
      Assets/Scripts/RTC/RTCRoomManager.cs

+ 112 - 60
Assets/Scripts/RTC/OnWebSocketMsg.cs

@@ -28,90 +28,90 @@ public class OnWebSocketMsg : MonoSingleton<OnWebSocketMsg>
                 break;
             case SignalResponse.MessageOneofCase.Join:
 
-                string msg = response.Join.Participant.Metadata.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();
-                string metadata = msg;
-                //  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 (obj2["roleId"].ToString() == "2")
-                {
-                    string uid = response.Join.Participant.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() == "2")
+                //{
+                //    string uid = response.Join.Participant.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() == "1")
+                //{
+                //    RTCRoomManager.Instance.UserJoined(UserEnum.Conterl, obj2);
+                //}
 
-                // 
-                //if (response.Update.Participants != null)
+                //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 (obj2["roleId"].ToString() == "1")
+                ////    {
+                ////        RTCRoomManager.Instance.UserJoined(UserEnum.Conterl, obj2);
+                ////    }
 
-                //    //if (state == "DISCONNECTED")
-                //    //{
-                //    //    //if (obj2["roleId"].ToString() == "2")
-                //    //    //{
+                ////    if (obj2["roleId"].ToString() == "3")
+                ////    {
+                ////        RTCRoomManager.Instance.UserJoined(UserEnum.Player);
+                ////        //  RTCRoomManager.Instance.OnLocalUserJoined();
+                ////    }
 
-                //    //    //    RTCRoomManager.Instance.UserOffline(UserEnum.Expert);
+                ////    //if (state == "DISCONNECTED")
+                ////    //{
+                ////    //    //if (obj2["roleId"].ToString() == "2")
+                ////    //    //{
 
-                //    //    //}
+                ////    //    //    RTCRoomManager.Instance.UserOffline(UserEnum.Expert);
 
-                //    //    //if (obj2["roleId"].ToString() == "1")
-                //    //    //{
-                //    //    //    RTCRoomManager.Instance.UserOffline(UserEnum.Conterl);
-                //    //    //}
+                ////    //    //}
 
+                ////    //    //if (obj2["roleId"].ToString() == "1")
+                ////    //    //{
+                ////    //    //    RTCRoomManager.Instance.UserOffline(UserEnum.Conterl);
+                ////    //    //}
 
-                //    //}
-                //    //else if (state == "ACTIVE")
-                //    //{
 
-                //    //}
+                ////    //}
+                ////    //else if (state == "ACTIVE")
+                ////    //{
 
+                ////    //}
 
-                //}
+
+                ////}
 
                 break;
             case SignalResponse.MessageOneofCase.Answer:
@@ -121,6 +121,58 @@ public class OnWebSocketMsg : MonoSingleton<OnWebSocketMsg>
             case SignalResponse.MessageOneofCase.Trickle:
                 break;
             case SignalResponse.MessageOneofCase.Update:
+                 string msg = response.ToString();
+              //  msg = msg.Remove(0, 1);
+               // msg = msg.Remove(msg.Length - 1, 1);
+                Debug.Log("DGJ ==> " + msg);
+
+                JObject obj = JObject.Parse(msg);
+
+                if(obj["update"]["participants"][0]["metadata"]!=null)
+                {
+                    string metadata = obj["update"]["participants"][0]["metadata"].ToString();
+                    // string metadata = msg;
+                    //  Debug.Log("DGJ == > metadata " + metadata);
+                    metadata = metadata.Replace('\"', '"');
+                    Debug.Log("DGJ == > metadata " + metadata);
+
+                    JObject obj2 = JObject.Parse(metadata);
+
+
+                    string state = obj["update"]["participants"][0]["state"].ToString();
+                    Debug.Log(state + "    DGJ  ===> roleId  " + obj2["roleId"].ToString());
+                    if (state == "ACTIVE")
+                    {
+                        if (obj2["roleId"].ToString() == "2")
+                        {
+                            //   string uid = response.Join.Participant.Sid.ToString();
+                            string uid = obj["update"]["participants"][0]["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();
+                        }
+                    }
+
+                }
+
+              
+
               
                 break;
             case SignalResponse.MessageOneofCase.TrackPublished:

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

@@ -97,8 +97,8 @@ public class RTCRoomManager : MonoSingleton<RTCRoomManager>, IController
     }
     public void OnLocalUserJoined()
     {
-       // UserJoined(UserEnum.Player);
-
+        // UserJoined(UserEnum.Player);
+        Debug.Log("DGJ  ===>OnLocalUserJoined  " + isInvite + isApply);
         if(isInvite) // 邀请中控
         {
             isInvite = false;
@@ -225,7 +225,7 @@ public class RTCRoomManager : MonoSingleton<RTCRoomManager>, IController
 
             Debug.Log("DGJ ===>  UserOffline  中控 " + uid);
         }
-
+        
 
     }