LangChaoRTC.cs 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285
  1. using LitJson;
  2. using rtc;
  3. using System;
  4. using System.Collections;
  5. using System.Collections.Generic;
  6. using UnityEngine;
  7. using XRTool.Util;
  8. public class LangChaoRTC : MonoSingleton<LangChaoRTC>
  9. {
  10. //自己账号
  11. zhanghao my = new zhanghao();
  12. // Start is called before the first frame update
  13. void Start()
  14. {
  15. Debug.Log("HJJLANGCHAORTC 开始登录");
  16. // StartCoroutine(init(0));
  17. }
  18. public void showRTC(int index)
  19. {
  20. StartCoroutine(init(index));
  21. }
  22. public IEnumerator init(int index)
  23. {
  24. yield return new WaitForSeconds(1f);
  25. //登录
  26. List<zhanghao> zh = new List<zhanghao>();
  27. zhanghao zh1 = new zhanghao();
  28. zh1.zh = "test02";
  29. zh1.mm = "123456Aa";
  30. zhanghao zh2 = new zhanghao();
  31. zh2.zh = "test03";
  32. zh2.mm = "123456Aa";
  33. zh.Add(zh1);
  34. zh.Add(zh2);
  35. my.zh = "test01";
  36. my.mm = "123456Aa";
  37. if (UserInfo.User_Token!="")
  38. {
  39. OnCreateRoom();
  40. }
  41. else
  42. {
  43. NetWorkHeaders.YuLogin(my.zh, my.mm, YuLoginOk, LoginFail);
  44. }
  45. yield return null;
  46. }
  47. private void LoginFail(string obj)
  48. {
  49. }
  50. private void YuLoginOk(JsonData js)
  51. {
  52. if (js["code"].ToString() == "200")
  53. {
  54. Debug.Log("HJJLANGCHAORTC 登录成功登录");
  55. NetWorkHeaders.Login(my.zh, my.mm, LoginOk, LoginFail);
  56. }
  57. }
  58. private void LoginOk(JsonData js)
  59. {
  60. Debug.Log("HJJLANGCHAORTC yu登录成功");
  61. LoginInitRTC.Instance.InitRTC();
  62. UserInfo.isSN = false;
  63. UserInfo.UnionId = js["data"]["unionId"].ToString();
  64. UserInfo.User_Token = js["data"]["token"].ToString();
  65. UserInfo.Account = my.zh;
  66. UserInfo.PassWord = my.mm;
  67. NetWorkHeaders.GetUserInfo((JsonData sData) => {
  68. Debug.Log("HJJLANGCHAORTC 获取用户信息");
  69. UserInfo.phone = sData["data"]["phone"].ToString();
  70. UserInfo.userName = sData["data"]["nickName"].ToString();
  71. if (UserInfo.userName == "")
  72. {
  73. UserInfo.userName = my.zh;
  74. //UserInfo.userName = "YCKJ" + UserInfo.Account.Substring(UserInfo.Account.Length - 4);
  75. }
  76. UserInfo.activateType = int.Parse(sData["data"]["activateType"].ToString());
  77. UserInfo.indate = double.Parse(sData["data"]["indate"].ToString());
  78. CustomInfo.isSendAudio = bool.Parse(sData["data"]["settings"]["mic"].ToString());
  79. CustomInfo.isSendVideo = bool.Parse(sData["data"]["settings"]["camera"].ToString());
  80. CustomInfo.camIndex = int.Parse(sData["data"]["settings"]["resolution"].ToString());
  81. switch (CustomInfo.camIndex - 1)
  82. {
  83. case 0:
  84. CustomInfo.mWidth = 1920;
  85. CustomInfo.mHight = 1080;
  86. break;
  87. case 1:
  88. CustomInfo.mWidth = 1280;
  89. CustomInfo.mHight = 720;
  90. break;
  91. case 2:
  92. CustomInfo.mWidth = 640;
  93. CustomInfo.mHight = 360;
  94. break;
  95. }
  96. CustomInfo.mWidth = 1920;
  97. CustomInfo.mHight = 1080;
  98. NetWorkHeaders.GetUserAvater((JsonData aData) =>
  99. {
  100. NetWorkHeaders.Instance.getNetTexture(aData["data"]["user"][0].ToString(), null, (Texture tex) => {
  101. UserInfo.defaulttextIcon = tex;
  102. });
  103. UserInfo.defaultavatar = aData["data"]["user"][0].ToString();
  104. });
  105. if (sData["data"]["avatar"].ToString() == "")
  106. {
  107. UserInfo.textIcon = UserInfo.defaulttextIcon;
  108. UserInfo.avatar = UserInfo.defaultavatar;
  109. NetWorkHeaders.SetUserInfo();
  110. }
  111. else
  112. {
  113. UserInfo.avatar = sData["data"]["avatar"].ToString();
  114. NetWorkHeaders.Instance.getNetTexture(sData["data"]["avatar"].ToString(), null, (Texture tex) => {
  115. UserInfo.textIcon = tex;
  116. });
  117. }
  118. WSHandler.Office.OnInit -= Init;
  119. WSHandler.Office.OnInit += Init;
  120. WSHandler.init();
  121. }, (string failStr) => {
  122. });
  123. }
  124. private void Init(JsonData data)
  125. {
  126. WSHandler.Office.OnInit -= Init;
  127. OnCreateRoom();
  128. }
  129. public List<InviteUserConfig> InvitingUnionIdList = new List<InviteUserConfig>();//已经邀请了还没同意或者拒绝
  130. public List<InviteUserConfig> InviteUnionIdList = new List<InviteUserConfig>();//选择还未被邀请
  131. private void InviteUsers(JsonData data)
  132. {
  133. if (data["data"]["code"].ToString() == "200")
  134. {
  135. for (int i = 0; i < InviteUnionIdList.Count; i++)
  136. {
  137. InvitingUnionIdList.Add(InviteUnionIdList[i]);
  138. }
  139. InviteUnionIdList.Clear();
  140. RoomOtherUser.Instance.UpdateList();
  141. }
  142. }
  143. public void HideHistory()
  144. {
  145. }
  146. private List<InviteUserConfig> inviteUserConfigList = new List<InviteUserConfig>();
  147. private void UserSearch(JsonData data)
  148. {
  149. Debug.Log("11111111111111111111111 "+data.ToJson());
  150. switch (data["data"]["code"].ToString())
  151. {
  152. case "200":
  153. HideHistory();
  154. if (inviteUserConfigList.Count > 0)
  155. {
  156. inviteUserConfigList.Clear();
  157. }
  158. if (data["data"]["data"].Count > 0)
  159. {
  160. for (int i = 0; i < data["data"]["data"].Count; i++)
  161. {
  162. if(data["data"]["data"][i]["online"].ToString() == "1")
  163. {
  164. InviteUserConfig inviteUserConfig = new InviteUserConfig(data["data"]["data"][i]["unionId"].ToString(), data["data"]["data"][i]["phone"].ToString(), data["data"]["data"][i]["avatar"].ToString(), data["data"]["data"][i]["nickName"].ToString(), data["data"]["data"][i]["online"].ToString());
  165. inviteUserConfigList.Add(inviteUserConfig);
  166. Debug.Log("11111111111111111 邀请中" + inviteUserConfig.UnionId);
  167. }
  168. }
  169. TimerMgr.Instance.CreateTimer(()=> {
  170. if(inviteUserConfigList.Count>0)
  171. {
  172. WSHandler.Office.InviteUsers(RoomMainInfo.roomNum, inviteUserConfigList);
  173. inviteUserConfigList.Clear();
  174. }
  175. },1);
  176. WSHandler.Office.OnUserSearch -= UserSearch;
  177. WSHandler.Office.OnInviteUsers -= InviteUsers;
  178. }
  179. else
  180. {
  181. }
  182. break;
  183. case "5001":
  184. HideHistory();
  185. break;
  186. default:
  187. break;
  188. }
  189. }
  190. public void OnCreateRoom()
  191. {
  192. WSHandler.Office.OnGetRoomIdReveived -= getRoomId;
  193. WSHandler.Office.OnGetRoomIdReveived += getRoomId;
  194. WSHandler.Office.GetRoomID();
  195. }
  196. private void getRoomId(JsonData data)
  197. {
  198. //Debug.Log("");
  199. //Debug.Log(JsonConvert.SerializeObject(data));
  200. WSHandler.Office.ChangeUserType(UserInfo.BusyType);
  201. RoomMainInfo.CreateRoom();
  202. RoomMainInfo.roomNum = data["data"]["roomId"].ToString();
  203. WSHandler.roomRtcinit(RoomMainInfo.roomNum);
  204. WSHandler.Office.OnGetRoomIdReveived -= getRoomId;
  205. WSHandler.Office.OnUserSearch -= UserSearch;
  206. WSHandler.Office.OnInviteUsers -= InviteUsers;
  207. WSHandler.Office.OnUserSearch += UserSearch;
  208. WSHandler.Office.OnInviteUsers += InviteUsers;
  209. WSHandler.Office.UserSearch("test02");
  210. }
  211. public void OnJoinRoom(string roomId)
  212. {
  213. Debug.Log("RoomMainInfo.roomNum......" + RoomMainInfo.roomNum);
  214. RoomMainInfo.roomNum = roomId;
  215. WSHandler.Office.OnJoinRoomReveived -= joinRoom;
  216. WSHandler.Office.OnJoinRoomReveived += joinRoom;
  217. WSHandler.Office.JoinRoom(roomId);
  218. //AgoraVideoAudioManager.Instance.SetChinnelName(roomId);
  219. }
  220. private void joinRoom(JsonData data)
  221. {
  222. switch (data["data"]["code"].ToString())
  223. {
  224. case "200":
  225. RoomMainInfo.CreateRoom();
  226. //Debug.Log("RoomMainInfo.roomNum"+ RoomMainInfo.roomNum);
  227. WSHandler.roomRtcinit(RoomMainInfo.roomNum);
  228. WSHandler.Office.ChangeUserType(UserInfo.BusyType);
  229. break;
  230. case "1000":
  231. PopUpInfo.Instance.showPublic(PopUpInfo.PopType.Tip, "房间号无效");
  232. SetClick();
  233. break;
  234. case "1001":
  235. PopUpInfo.Instance.showPublic(PopUpInfo.PopType.PopOk, "房间人数已满", "知道了", GameStart.actionok);
  236. SetClick();
  237. break;
  238. case "1003":
  239. PopUpInfo.Instance.showPublic(PopUpInfo.PopType.Tip, "房间不存在");
  240. SetClick();
  241. break;
  242. default:
  243. PopUpInfo.Instance.showPublic(PopUpInfo.PopType.Tip, "房间不存在");
  244. SetClick();
  245. break;
  246. }
  247. WSHandler.Office.OnJoinRoomReveived -= joinRoom;
  248. }
  249. public void SetClick()
  250. {
  251. if (JoinRoom.Instance)
  252. {
  253. JoinRoom.Instance.isClick = false;
  254. }
  255. }
  256. public class zhanghao
  257. {
  258. public string zh = "test01";
  259. public string mm = "123456Aa";
  260. }
  261. }