public override void ClientDisconnect(PhotonClientPeer clientPeer) { var para = new Dictionary<byte, object> { {(byte) ClientParameterCode.PeerId, clientPeer.PeerId.ToByteArray()} }; if (clientPeer.ClientData<CharacterData>().CharacterId.HasValue) { Log.DebugFormat("Sending disconnect for client {0}:{1}", clientPeer.PeerId, clientPeer.ClientData<CharacterData>().CharacterId.Value); if (ChatServer != null) { ChatServer.SendEvent(new EventData((byte)ServerEventCode.CharacterDeRegister, para), new SendParameters()); } if (clientPeer.CurrentServer != null) { clientPeer.CurrentServer.SendEvent( new EventData((byte)ServerEventCode.CharacterDeRegister, para), new SendParameters()); } } Log.DebugFormat("xxx sending user loggedout sendevent"); LoginServer.SendEvent(new EventData((byte) ServerEventCode.UserLoggedOut, para), new SendParameters()); }