예제 #1
0
        public void CreateOrJoinRoom(string roomId)
        {
            if (!RoomStatuses.ContainsKey(roomId))
            {
                RoomStatuses[roomId] = new VideoStatus();
            }

            if (_roomLoopThread == null)
            {
                _roomLoopThread = new Thread(LoopRooms);
                _roomLoopThread.Start();
            }

            RoomStatuses[roomId].UserList.Add(Context.ConnectionId);
            _logger.LogInformation(Context.User.Identity.Name + " has joined stream room [" + roomId + ']');
            _logger.LogInformation(RoomStatuses[roomId].UserList.Count + " users connected to room [" + roomId + ']');
            Groups.Add(Context.ConnectionId, roomId);
        }
예제 #2
0
        public VideoStatusLightweight(string roomId, VideoStatus status)
        {
            RoomId    = roomId;
            Time      = status.Time;
            UserCount = status.UserList.Count;
            switch (status.Status)
            {
            case Status.Playing:
                CurrentStatus = "play";
                break;

            case Status.Paused:
                CurrentStatus = "pause";
                break;

            case Status.Ended:
                CurrentStatus = "end";
                break;

            default:
                CurrentStatus = "unstarted";
                break;
            }
        }