OnWebSocketMsg.cs 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. using LiveKit.Proto;
  2. using Newtonsoft.Json.Linq;
  3. using System.Collections;
  4. using System.Collections.Generic;
  5. using UnityEngine;
  6. public class OnWebSocketMsg : MonoSingleton<OnWebSocketMsg>
  7. {
  8. private void Update()
  9. {
  10. if(SignalClient.SignalResponseList.Count>0)
  11. {
  12. int ct = SignalClient.SignalResponseList.Count;
  13. for (int i = 0; i < ct; i++)
  14. {
  15. OnWebSocketMessage(SignalClient.SignalResponseList.Dequeue());
  16. }
  17. }
  18. }
  19. public void OnWebSocketMessage(SignalResponse response)
  20. {
  21. Debug.Log("DGJ ===> OnWebSocketMessage " + response);
  22. switch (response.MessageCase)
  23. {
  24. case SignalResponse.MessageOneofCase.None:
  25. break;
  26. case SignalResponse.MessageOneofCase.Join:
  27. break;
  28. case SignalResponse.MessageOneofCase.Answer:
  29. break;
  30. case SignalResponse.MessageOneofCase.Offer:
  31. break;
  32. case SignalResponse.MessageOneofCase.Trickle:
  33. break;
  34. case SignalResponse.MessageOneofCase.Update:
  35. if(response.Update.Participants!=null)
  36. {
  37. string msg = response.Update.Participants.ToString();
  38. msg = msg.Remove(0, 1);
  39. msg = msg.Remove(msg.Length - 1, 1);
  40. Debug.Log("DGJ ==> "+ msg);
  41. JObject obj = JObject.Parse(msg);
  42. string metadata = obj["metadata"].ToString();
  43. Debug.Log("DGJ == > metadata " + metadata);
  44. metadata = metadata.Replace('\"', '"');
  45. Debug.Log("DGJ == > metadata "+ metadata);
  46. JObject obj2 = JObject.Parse(metadata);
  47. Debug.Log("DGJ ===> roleId " + obj2["roleId"].ToString());
  48. if (obj2["roleId"].ToString() == "2")
  49. {
  50. string uid = obj["sid"].ToString();
  51. // 专家进入房间 并且当前是在远程协助页面
  52. LiveRTCRoomMain.Instance.ExpertJonin(uid);
  53. }
  54. }
  55. break;
  56. case SignalResponse.MessageOneofCase.TrackPublished:
  57. break;
  58. case SignalResponse.MessageOneofCase.Leave:
  59. break;
  60. case SignalResponse.MessageOneofCase.Mute:
  61. break;
  62. case SignalResponse.MessageOneofCase.SpeakersChanged:
  63. break;
  64. case SignalResponse.MessageOneofCase.RoomUpdate:
  65. break;
  66. case SignalResponse.MessageOneofCase.ConnectionQuality:
  67. break;
  68. case SignalResponse.MessageOneofCase.StreamStateUpdate:
  69. break;
  70. case SignalResponse.MessageOneofCase.SubscribedQualityUpdate:
  71. break;
  72. case SignalResponse.MessageOneofCase.SubscriptionPermissionUpdate:
  73. break;
  74. case SignalResponse.MessageOneofCase.RefreshToken:
  75. break;
  76. case SignalResponse.MessageOneofCase.TrackUnpublished:
  77. break;
  78. case SignalResponse.MessageOneofCase.Pong:
  79. break;
  80. default:
  81. break;
  82. }
  83. }
  84. }