コード例 #1
0
        private async Task HandleChatMessage(string from, string message)
        {
            var dbContext      = getNewDBContext();
            var sockets        = manager.GetAllSockets();
            var socketsInLobby = sockets
                                 .Where(x => {
                return(dbContext.Games.Where(g => g.PlayerIDs.Contains(manager.GetSocketID(x.Value))).FirstOrDefault <GameDataModel>() == null);
            })
                                 .ToDictionary(x => x.Key, x => x.Value);

            dbContext.Dispose();
            var ServResponse = new ServerResponse()
            {
                Type  = "ChatMessage",
                Value = message,
                From  = from
            };

            foreach (var sock in socketsInLobby)
            {
                await WebSocketHelper.Send(JsonConvert.SerializeObject(ServResponse), sock.Value);
            }
        }