Exemplo n.º 1
0
        public override Task OnDisconnected(bool stopCalled)
        {
            var item = ConnectedUsers.FirstOrDefault(x => x.ConnectionId == Context.ConnectionId);

            if (item != null)
            {
                ConnectedUsers.Remove(item);

                using (RandomSquadCreaterObject service = new RandomSquadCreaterObject())
                {
                    Player connectedPlayer = service.GetPlayerByConnectedId(Context.ConnectionId);
                    if (connectedPlayer != null)
                    {
                        connectedPlayer.PlayerIsOnline = false;
                        try
                        {
                            service.UpdatePlayer(connectedPlayer);
                            Log.Info(connectedPlayer.PlayerName + " " + connectedPlayer.PlayerSurname + " şu anda online değil.");
                        }
                        catch (Exception e)
                        {
                            Log.Error(e.Message);
                            throw;
                        }
                    }
                }


                var id = Context.ConnectionId;
                Clients.All.onUserDisconnected(id, item.UserName);
            }

            return(base.OnDisconnected(stopCalled));
        }
Exemplo n.º 2
0
        public void Connect(string userName)
        {
            var id = Context.ConnectionId;

            using (RandomSquadCreaterObject service = new RandomSquadCreaterObject())
            {
                Player connectedPlayer = service.GetPlayerByName(userName);
                if (connectedPlayer != null)
                {
                    connectedPlayer.PlayerIsOnline      = true;
                    connectedPlayer.PlayerConnectionId  = id;
                    connectedPlayer.PlayerLastLoginTime = DateTime.Now;
                    try
                    {
                        service.UpdatePlayer(connectedPlayer);
                        Log.Info(connectedPlayer.PlayerName + " " + connectedPlayer.PlayerSurname + " şu anda online.");
                    }
                    catch (Exception e)
                    {
                        Log.Error(e.Message);
                        throw;
                    }
                }
            }



            if (ConnectedUsers.Count(x => x.ConnectionId == id) == 0)
            {
                ConnectedUsers.Add(new PlayerDetail {
                    ConnectionId = id, UserName = userName
                });

                // send to caller
                Clients.Caller.onConnected(id, userName, ConnectedUsers, CurrentMessage);

                // send to all except caller client
                Clients.AllExcept(id).onNewUserConnected(id, userName);
            }
        }