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)); }
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); } }