Beispiel #1
0
 /// <summary>
 /// 添加监控房间
 /// </summary>
 /// <param name="ROOM_ID"></param>
 /// <param name="IsMonitorRoom"></param>
 /// <returns></returns>
 public async void AddMonitor(int ROOM_ID, bool IsMonitorRoom = true)
 {
     await Task.Run(async() =>
     {
         if (!douyuRooms.ContainsKey(ROOM_ID))
         {
             //获取礼物
             await DouyuRoom.GetLiwu(ROOM_ID);
             if (JSImplement.GetJSImplement(ROOM_ID) == null)
             {
                 new JSImplement(ROOM_ID);
             }
             douyuRooms[ROOM_ID] = new List <DouyuRoom>();
         }
         var room = new DouyuRoom(ROOM_ID, IsMonitorRoom);
         //事件绑定
         room.BarrageNotice   = BarrageNotice;
         room.GiftNotice      = GiftNotice;
         room.DouyuRoomError += (DouyuRoom obj) =>
         {
             douyuRooms[obj.ROOM_ID].Remove(obj);
             Console.WriteLine($"【房间:{obj.ROOM_ID}】人数{douyuRooms[obj.ROOM_ID].Count}");
             OnConnectResult?.Invoke(room.ROOM_ID, false);
         };
         Console.WriteLine($"初始化房间:{ROOM_ID}");
         bool flag = await ConnectRoomAsync(room);
         //如果成功连接
         if (flag)
         {
             douyuRooms[ROOM_ID].Add(room);
             //房间连接成功通知
             OnConnectResult?.Invoke(room.ROOM_ID, true);
         }
         else
         {
             //房间连接失败通知
             OnConnectResult?.Invoke(room.ROOM_ID, false);
             room.Dispose();
         }
     });
 }
Beispiel #2
0
        public async static Task <bool> ConnectRoomAsync(DouyuRoom room)
        {
            bool flag = await room.Reconnect();

            return(flag);
        }