Beispiel #1
0
        public async Task GetPlayer(int index)
        {
            var response = Response;

            response.Headers.Add("Content-Type", "text/event-stream");
            response.Headers.Add("Cache-Control", "no-cache");
            response.Headers.Add("Connection", "keep-alive");

            PlayerVM currentPlayer = new PlayerVM();

            for (var i = 0; true; i = (i + 1) % 100)
            {
                PlayerVM player = index == 1 ? _livedata.GetPlayers().playerLeft : _livedata.GetPlayers().playerRight;
                if (player == null)
                {
                    player = new PlayerVM();
                }
                if (!player.name.Equals(currentPlayer.name) || !player.deck.Equals(currentPlayer.deck) || !player.score.Equals(currentPlayer.score) || !player.lifePoints.Equals(currentPlayer.lifePoints))
                {
                    await response.WriteAsync($"id: ${i}\n");

                    await response.WriteAsync("event: message\n");

                    await response.WriteAsync($"data: {JsonConvert.SerializeObject(player)}\n\n");

                    currentPlayer = new PlayerVM {
                        index = player.index, name = player.name, deck = player.deck, score = player.score, lifePoints = player.lifePoints
                    };
                }

                await response.Body.FlushAsync();

                await Task.Delay(200);
            }
        }
Beispiel #2
0
        public ActivePlayers Get()
        {
            ActivePlayers players = _liveDataService.GetPlayers();

            return(players);
        }