Пример #1
0
 public async void PlayCard(string card)
 {
     var user = ConnectedUsers.GetByConnectionId(Context.ConnectionId);
     await Clients.Group(user.GroupId).SendAsync(GameEvents.CardPlayed, new CardDTO
     {
         ConnectionId = user.ConnectionId,
         Card         = card
     });
 }
Пример #2
0
        public override async Task OnDisconnectedAsync(Exception exception)
        {
            var user = ConnectedUsers.GetByConnectionId(Context.ConnectionId);

            ConnectedUsers.GameUsers.Remove(user);
            await Clients.Group(user.GroupId).SendAsync(GameEvents.UserLeft, ConnectedUsers.GetByGroup(user.GroupId));

            await Groups.RemoveFromGroupAsync(Context.ConnectionId, user.GroupId);

            await base.OnDisconnectedAsync(exception);
        }
Пример #3
0
        public async void JoinGroup(JoinGameRequestDto request)
        {
            var user = new GameUser
            {
                Name         = request.Name,
                GroupId      = request.GroupId,
                ConnectionId = Context.ConnectionId
            };

            ConnectedUsers.GameUsers.Add(user);

            await Groups.AddToGroupAsync(Context.ConnectionId, user.GroupId);

            await Clients.Client(Context.ConnectionId).SendAsync(GameEvents.GameJoined, user);

            await Clients.Group(user.GroupId).SendAsync(GameEvents.UserJoined, ConnectedUsers.GetByGroup(user.GroupId));
        }
Пример #4
0
 public async void StartNewGame()
 {
     var user = ConnectedUsers.GetByConnectionId(Context.ConnectionId);
     await Clients.Group(user.GroupId).SendAsync(GameEvents.NewGameStarted);
 }
Пример #5
0
 public async void ShowCards()
 {
     var user = ConnectedUsers.GetByConnectionId(Context.ConnectionId);
     await Clients.Group(user.GroupId).SendAsync(GameEvents.CardsShown);
 }