static void world_NetStateDisconnect(object sender, NetStateDisconnectEventArgs e) { // 网络连接断开 if (e.NetState != null) { Logs.Info("{0} close socket.", e.NetState.Serial); } }
private void RunTaskNetStateDisconnect(NetState netState) { m_netStateManager.InternalRemoveNetState(netState.Serial); // 通知业务逻辑有客户端连接上来可以做一些初始化 // 或者判断是否允许本次连接 var tempEV = NetStateDisconnect; if (tempEV != null) { var arg = new NetStateDisconnectEventArgs { NetState = netState, }; tempEV(this, arg); } netState.ExitWorld(); netState.Dispose(); }
private void OnNetStateDisconnect(object sender, NetStateDisconnectEventArgs e) { var netState = e.NetState; if (netState.IsVerifyLogin && netState.BizId > 0) { // 标示玩家已经登陆过游戏,离线时会触发一系列的操作 var player = (Player)netState.Player; Logs.Info("{0} net disconnect.", player.Name); player.LastLogoffTime = OneServer.NowTime; var onlineTime = player.LastLogoffTime - player.LastLoginTime; player.OnlineTime += (int)onlineTime.TotalSeconds; WorldEntityManager.OnlinePlayers.Remove(player.Id); PlayerEvents.OnExitGame(player); // 这里暂时是同步写文件了 DB.GameDB.UpdateEntity(player); } else { Logs.Info("not login account net disconnect."); } }