protected virtual void HandleUpdateGameServerEvent(IEventData eventData) { var updateGameServer = new UpdateServerEvent(this.Protocol, eventData); if (updateGameServer.IsValid == false) { string msg = updateGameServer.GetErrorMessage(); log.ErrorFormat("UpdateServer contract error: {0}", msg); return; } var previuosLoadLevel = this.LoadLevel; this.LoadLevel = (FeedbackLevel)updateGameServer.LoadIndex; this.PeerCount = updateGameServer.PeerCount; if ((ServerState)updateGameServer.State != this.State) { this.SetServerState((ServerState)updateGameServer.State); } else if (previuosLoadLevel != this.LoadLevel && this.State == ServerState.Normal) { if (log.IsDebugEnabled) { log.DebugFormat("UpdateGameServer - from LoadLevel {0} to {1}, PeerCount {2}", previuosLoadLevel, this.LoadLevel, this.PeerCount); } if (!this.application.LoadBalancer.TryUpdateServer(this, this.LoadLevel)) { log.WarnFormat("Failed to update game server state for {0}", this.TcpAddress); } } }
protected virtual void HandleUpdateGameServerEvent(IEventData eventData) { var updateGameServer = new UpdateServerEvent(this.Protocol, eventData); if (updateGameServer.IsValid == false) { string msg = updateGameServer.GetErrorMessage(); log.ErrorFormat("UpdateServer contract error: {0}", msg); return; } var previuosLoadLevel = this.LoadLevel; this.LoadLevel = (FeedbackLevel)updateGameServer.LoadIndex; this.PeerCount = updateGameServer.PeerCount; if ((ServerState)updateGameServer.State != this.State) { if (log.IsDebugEnabled) { log.DebugFormat("GameServer state changed for {0}: old={1}, new={2} ", this.TcpAddress, this.State, (ServerState)updateGameServer.State); } this.State = (ServerState)updateGameServer.State; if (this.State == ServerState.Normal) { if (this.application.LoadBalancer.TryAddServer(this, this.LoadLevel) == false) { log.WarnFormat("Failed to add game server to load balancer: serverId={0}", this.ServerId); } } else if (this.State == ServerState.Offline) { ////this.RemoveGameServerPeerOnMaster(); } else { this.application.LoadBalancer.TryRemoveServer(this); } } else if (previuosLoadLevel != this.LoadLevel) { if (log.IsDebugEnabled) { log.DebugFormat("UpdateGameServer - from LoadLevel {0} to {1}, PeerCount {2}", previuosLoadLevel, this.LoadLevel, this.PeerCount); } if (!this.application.LoadBalancer.TryUpdateServer(this, this.LoadLevel)) { log.WarnFormat("Failed to update game server state for {0}", this.TcpAddress); } } }
private void HandleUpdateGameServerEvent(IEventData eventData) { var updateGameServer = new UpdateServerEvent(this.Protocol, eventData); if (updateGameServer.IsValid == false) { string msg = updateGameServer.GetErrorMessage(); log.ErrorFormat("UpdateServer contract error: {0}", msg); return; } var ctx = this.Context; if (ctx != null) { ctx.HandleUpdateGameServerEvent(updateGameServer); } }