Beispiel #1
0
        protected override async Task OnInitializedAsync()
        {
            hubConnection = new HubConnectionBuilder()
                            .WithUrl(_nav.ToAbsoluteUri("/pbhub"))
                            .Build();

            hubConnection.On <int>("VisitorJoined", (count) =>
            {
                pickBanStatus.Visitors = count;
                StateHasChanged();
            });

            hubConnection.On <int>("VisitorLeft", (count) =>
            {
                pickBanStatus.Visitors = count;
                StateHasChanged();
            });

            hubConnection.On <PickbanLockinfo>("CmdrLocked", (pb) =>
            {
                pickBanStatus.Lock(pb);
                StateHasChanged();
            });

            hubConnection.On <List <PickbanLockinfo> >("ConnectInfo", (pb) =>
            {
                pickBanStatus.Reset();
                foreach (var info in pb)
                {
                    pickBanStatus.Lock(info);
                }
                StateHasChanged();
            });

            await hubConnection.StartAsync();

            _logger.LogInformation($"gernerating guid: {guid ?? "null"}");
            if (!Guid.TryParse(guid, out Guid))
            {
                Guid = Guid.NewGuid();
                _logger.LogInformation($"gernerating guid: {Guid}");
                _nav.NavigateTo($"pickban/{mode}/{Guid}");
                await hubConnection.SendAsync("CreateNewPage", Guid);
            }
            else
            {
                await hubConnection.SendAsync("VisitPage", Guid);
            }
            pickBanStatus = new PickbanStatus(Guid);
        }
Beispiel #2
0
        public async Task CreateNewPage(Guid guid)
        {
            logger.LogInformation($"create new page {guid}");
            Context.Items.Clear();
            Context.Items.Add("guid", guid);

            PickbanStatus model = new PickbanStatus(guid);

            if (!Pbs.TryAdd(guid, model))
            {
                Pbs[guid].Reset();
            }
            await Groups.AddToGroupAsync(Context.ConnectionId, guid.ToString());

            await Clients.Group(guid.ToString()).SendAsync("VisitorJoined", 1);
        }