Cadre Photon – Echec d’enregistrement du sous-serveur (Tutoriels sur les jeux CJR)

J’ai suivi le didacticiel Christian Richards Photon Server Framework depuis un bon moment, en corrigeant les erreurs ici et là. Je suis tombé sur quelque chose qui ne jette même pas d’erreur, mais il ne fait pas ce qu’il devrait être. À la fin du tutoriel (photon episode 14), Christian nous montre que le sous-serveur doit être enregistré et affiché dans les journaux. Lorsque je construis mon projet, puis l’ouvre avec le contrôle de photons, les journaux montrent tout sauf cela. Les journaux ne contiennent aucune erreur, mais n’affichent pas ce qu’ils devraient être. Par exemple, le journal du proxy DEVRAIT indiquer qu’il a reçu une demande de registre, mais il ne le fait pas, ainsi que le nom d’utilisateur indiquant qu’il n’y a pas de gestionnaire de réponse existant.

Journal du serveur complexe:

48068: 19: 56: 46.598 – Service: “Photon Socket Server” à partir de 48068: 19: 56: 46.598 – Fichier de configuration: C: \ Photon \ deploy \ bin_Win64 \ PhotonServer.config 48068: 19: 56: 46.599 – Produira à plus: 10 crash dumps 48068: 19: 56: 46.599 – Action: exécuter comme exe 48068: 19: 56: 46.600 – serveur à partir … 48068: 19: 56: 46.600 – nombre de ticks: 42761421 (encapsule: 49.2153 jours) 48068: 19: 56: 46.600 – Nombre de tics 64: 42761421 48068: 19: 56: 46.600 – Photon Version: 3.4.8.2804 48068: 19: 56: 46.600 – PID: 45344 48068: 19: 56: 46.600 – Fichier de configuration: C : \ Photon \ deploy \ bin_Win64 \ PhotonServer.config 48068: 19: 56: 46.601 – n’enregistrera PAS les exceptions sans importance 48068: 19: 56: 46.604 – Ne pas utiliser les compteurs de performance car ils ne sont pas installés actuellement. Exécutez le service avec / InstallCounters pour les installer. 48068: 19: 56: 46.604 – Délai d’attente d’arrêt activé: 30000ms 48068: 19: 56: 46.604 – Démarrage du pool de threads d’E / S avec 2 threads 48068: 19: 56: 46.604 – Utilisation de l’allocateur standard 48068: 19: 56: 46.604 – Max taille du message: 512000 48068: 19: 56: 46.604 – Démarrage du pool de threads de logique métier avec les parameters suivants 48068: 19: 56: 46.604 – Threads initiaux: 4 threads 48068: 19: 56: 46.604 – MinThreads: 4 threads 48068: 19:56 : 46.604 – Le pool de threads est de taille fixe 48068: 19: 56: 46.604 – Démarrage du pool de threads ENet avec les parameters suivants 48068: 19: 56: 46.604 – Threads initiaux: 2 threads 48068: 19: 56: 46.604 – MinThreads: 2 threads 48068: 19: 56: 46.604 – Le pool de threads est de taille fixe 48068: 19: 56: 46.604 – OnlyDispatchTimers: False 48068: 19: 56: 46.604 – S2S: contrôle de stream: Max en attente d’écritures: 50 48068: 19: 56: 46.604 – S2S: contrôle de stream: Nombre maximal de tampons en queue: 200 48068: 19: 56: 46.604 – S2S: contrôle de stream: Max en attente écrit MUX: 500 48068: 19: 56: 46.604 – S2S: contrôle de stream: Max tampons MUX: 2000 48068: 19: 56: 46.604 – S2S: Max InboundMessageSize: 512000 48068: 19: 56: 46.604 – S2S: MaxOutboundMessageSize: 512000 48068: 19: 56: 46.604 – S2S: pas de délai d’inactivité 48068: 19: 56: 46.607 – WebSocket S2S: MaxInboundMessageSize: 512000 48068: 19: 56: 46.607 – WebSocket S2S: MaxOutboundMessageSize: 512000 48068: 19: 56: 46.607 – WebSocket S2S: pas de délai d’inactivité 48068: 19: 56: 46.607 – Max données fiables en transit (en attente d’ACK) par homologue: 51200 octets 48068: 19: 56: 46.607 – Par limite de bande passante 48068: 19: 56: 46.607 – Limite de transmission: 256 Ko / s 48068: 19: 56: 46,607 – Période limite: 200 ms 48068: 19: 56: 46,607 – Limite par période: 52428 octets 48068: 19 : 56: 46.607 – Nombre maximal de données en attente pour la transmission par homologue: 512000 octets 48068: 19: 56: 46.607 – Délai minimum de retransmission: 200 48068: 19: 56: 46.607 – Non Délai maximal de retransmission 48068: 19: 56: 46.607 timeout: 5000ms 48068: 19: 56: 46.607 – Délai maximal d’ENet: 30000ms 48068: 19: 56: 46.607 – Nombre maximum de données fiables entrantes en attente (en attente de renvoyer des numéros de séquence antérieurs) ) par homologue: 163840 octets 48068: 19: 56: 46.607 – pas de délai d’ajustement RTK ACK 48068: 19: 56: 46.607 – sortant ENet: maxInboundMessageSize: 512000 48068: 19: 56: 46.607 – sortant ENet: maxOutboundMessageTaille: 512000 48068: 19 : 56: 46.609 – GetRuntime – À propos du chargement du CLR – Versions disponibles: 48068: 19: 56: 46.609 – v2.0.50727 48068: 19: 56: 46.609 – v4.0.30319 48068: 19: 56: 46.609 – Demandes de configuration: “v2 .0.50727 “48068: 19: 56: 46.609 – A propos du chargement de la version:” v2.0.50727 “48068: 19: 56: 46.611 – A propos du chargement de l’exécution: PhotonHostRuntime.PhotonDomainManager depuis PhotonHostRuntime, Culture = neutral, PublicKeyToken = 02C301B61B060C4D 48068: 19 : 56: 46.611 – CLRBaseDirectory défini sur “C: \ Photon \ deploy” 48068: 19: 56: 46.612 – Optimisation de la diffusion d’événements pour 20 homologues ou plus 48068: 19: 56: 46.612 – Début: chargement CLR – versions disponibles: 48068: 19: 56: 46.612 – v2.0.50727 48068: 19: 56: 46.612 – v4.0.30319 48068: 19: 56: 46.612 – Aucune préférence dans le fichier de configuration, chargera au plus tard. 48068: 19: 56: 46.612 – Sur le sharepoint charger la version: “v4.0.30319” 48068: 19: 56: 46.613 – Version chargée: “v4.0.30319” 48068: 19: 56: 46.880 – Temps d’exécution de l’hôte Photon chargé 48068: 19: 56: 53.045 – LICENCE: aucun fichier de licence n’a été trouvé. À partir de la licence Bootstrap. 48068: 19: 56: 53.045 – La licence est valide. 48068: 19: 56: 53.045 – Licence pour 20 connexions simultanées. 48068: 19: 56: 53.045 – ENet: Nombre maximal de données fiables en transit (en attente d’ACK) par homologue: 51200 octets 48068: 19: 56: 53.045 – ENet: limite de bande passante homologue 48068: 19: 56: 53.045 – ENet: taux de transmission Limite: 256 Ko / s 48068: 19: 56: 53,045 – ENet: Période limite: 200 ms 48068: 19: 56: 53,045 – ENet: Limite par période: 52428 octets 48068: 19: 56: 53.045 – ENet: données en attente maximales pour transmission par homologue: 512000 octets 48068: 19: 56: 53.045 – ENet: délai de retransmission minimal: 200 48068: 19: 56: 53.045 – ENet: délai minimum: 5000ms 48068: 19: 56: 53.045 – ENet: délai maximal: 30000ms 48068 : 19: 56: 53.045 – ENet: Max données entrantes en attente mises en queue (en attente de renvoyer des numéros de séquence antérieurs) par homologue: 163840 octets 48068: 19: 56: 53.046 – sur le sharepoint charger une application: Proxy de ComplexServer 48068: 19: 56: 53.046 – Le redémarrage automatique est activé pour l’application, les connexions existantes seront interrompues pendant le redémarrage 48068: 19: 56: 53.046 – L’application redémarrera 1000 ms après la dernière modification détectée 48068: 19: 56: 53.046 – Appli cation redémarrera si les fichiers correspondant aux éléments suivants sont modifiés: “dll; config” 48068: 19: 56: 53.046 – L’application ne redémarrera PAS si les fichiers correspondant aux éléments suivants sont modifiés: “log4net.config” 48068: 19: 56: 53.201 – Prise référence sur le domaine d’application par défaut 48068: 19: 56: 53.351 – Application: “Proxy” démarré dans le domaine d’application: 2 48068: 19: 56: 53.351 – A propos du chargement de l’application: Connexion de LoginServer 48068: 19: 56: 53.351 – Redémarrage automatique est activé pour l’application, les connexions existantes seront terminées pendant le redémarrage 48068: 19: 56: 53.351 – L’application redémarrera 1000 ms après la dernière modification détectée 48068: 19: 56: 53.351 – L’application redémarrera si les fichiers correspondants sont modifiés: “dll ; config “48068: 19: 56: 53.351 – L’application ne redémarrera PAS si les fichiers correspondant aux éléments suivants sont modifiés:” log4net.config “48068: 19: 56: 53.491 – Référence au domaine d’application par défaut 48068: 19: 56: 53.613 – Application: “Connexion” démarrée dans le domaine d’application: 3 48068: 19: 56: 53.613 – A propos du chargement de l’application: CounterPu Blisher from CounterPublisher 48068: 19: 56: 53.613 – Le redémarrage automatique est activé pour l’application, les connexions existantes seront interrompues au redémarrage 48068: 19: 56: 53.613 – L’application redémarrera 1000 ms après la dernière modification détectée 48068: 19: 56: 53.613 – L’application redémarrera si les fichiers correspondant aux éléments suivants sont modifiés: “dll; config” 48068: 19: 56: 53.613 – L’application ne redémarrera PAS si les fichiers correspondant aux éléments suivants sont modifiés: “log4net.config” 48068: 19: 56: 53.746 référence sur le domaine d’application par défaut 48068: 19: 56: 53.839 – Application: “CounterPublisher” démarré dans le domaine d’application: 4 48068: 19: 56: 53.839 – Ajout du programme d’écoute TCP sur: 0.0.0.0: 4530 avec un backlog d’écoute de: 150 48068 : 19: 56: 53.839 – Délai d’inactivité TCP: 10000ms 48068: 19: 56: 53.839 – Délai de déconnexion TCP: 120000ms 48068: 19: 56: 53.839 – MaxInboundMessageTaille: 512000 48068: 19: 56: 53.839 – MaxOutboundMessageTaille: 512000 48068: 19 : 56: 53.839 – Forcer tous les identifiants d’applications à: “Proxy” 48068: 19: 56: 53.840 – Fichier de stratégie de service demandes provenant de: “C: \ Photon \ deploy \ Policy \ assets \ socket-policy.xml” 48068: 19: 56: 53.840 – Ajout du programme d’écoute TCP sur: 0.0.0.0: 4531 avec un retard d’écoute de: 150 48068: 19: 56: 53.840 – Délai d’inactivité TCP: 10000ms 48068: 19: 56: 53.840 – Délai de déconnexion TCP: 120000ms 48068: 19: 56: 53.840 – MaxInboundMessageSize: 512000 48068: 19: 56: 53.840 – MaxOutboundMessageSize: 512000 48068: 19:56: 53.840 – Forcer tous les identifiants des applications à: “Connexion” 48068: 19: 56: 53.840 – Traitement des requêtes de fichier de politique à partir de: “C: \ Photon \ deploy \ Policy \ assets \ socket-policy.xml” 48068: 19: 56: 53.840 – Ajout du port d’écoute TCP sur: 0.0.0.0: 4520 avec un backlog d’écoute de: 150 48068: 19: 56: 53.840 – Délai d’inactivité TCP: 5000ms 48068: 19: 56: 53.840 – Délai de déconnexion TCP: 120000ms 48068: 19:56: 53.840 – MaxInboundMessageSize: 512000 48068: 19: 56: 53.840 – MaxOutboundMessageSize: 512000 48068: 19: 56: 53.840 – Forcer tous les identifiants d’application à: “Proxy” 48068: 19: 56: 53.840 – MaxInboundMessageSize: 512000 48068: 19:56: 53.840 – MaxOutboundMessagesS ize: 512000 48068: 19: 56: 53.840 – Adresse UDP spécifiée comme suit: 0.0.0.0 ajout d’un écouteur à chaque adresse IPv4 disponible 48068: 19: 56: 53.840 – Ajout d’un écouteur UDP sur: 192.168.56.1: 5055 avec un retard d’écoute de: 500 48068: 19: 56: 53.840 – Ajout du listener UDP sur: 192.168.3.103: 5055 avec un backlog d’écoute de: 500 48068: 19: 56: 53.840 – Ajout du listener UDP sur: 127.0.0.1: 5055 avec un backlog d’écoute de: 500 48068: 19: 56: 53.840 – Forcer tous les identificateurs d’applications à: “Connexion” 48068: 19: 56: 53.840 – MaxInboundMessageSize: 512000 48068: 19: 56: 53.840 – MaxOutboundMessageSize: 512000 48068: 19: 56: 53.840 – Adresse UDP spécifiée comme suit: 0.0.0.0 ajout d’un écouteur à chaque adresse IPv4 disponible 48068: 19: 56: 53.841 – Ajout d’un écouteur UDP sur: 192.168.56.1: 5056 avec un retard de lecture de: 500 48068: 19: 56: 53.841 – Ajout d’un écouteur UDP : 192.168.3.103: 5056 avec un backlog d’écoute de: 500 48068: 19: 56: 53.841 – Ajout d’un écouteur UDP sur: 127.0.0.1: 5056 avec un backlog d’écoute de: 500 48068: 19: 56: 53.841 – Ajout d’un écouteur de fichier de stratégie on: 0.0.0.0: 843 avec un backlog d’écoute de: 150 et servant le fichier Policy: “C: \ Photon \ deploy \ Policy \ assets \ socket-policy.xml” 48068: 19: 56: 53.841 – Délai d’inactivité TCP: 1000 ms 48068: 19: 56: 53.841 – Ajout d’un écouteur de fichier de stratégie sur: 0.0.0.0: 943 avec un retard d’écoute de: 150 et un fichier de stratégie: “C: \ Photon \ deploy \ Policy \ assets \ socket-policy-silverlight.xml “48068: 19: 56: 53.841 – Délai d’inactivité TCP: 1000ms 48068: 19: 56: 53.873 – Le service est en cours d’exécution …

Journal proxy:

2015-07-22 19: 56: 55,596 [1] INFO Photon.SocketServer.ApplicationBase [(null)] – Début de l’application: AppId = Proxy; AppPath = C: \ Photon \ deploy \ ComplexServer, Type = ComplexServer.ComplexProxyServer 2015-07-22 19: 56: 55,643 [15] DEBUG ExitGames.Diagnostics.Counter.CounterBase [(null)] – Création de AverageCounter: Name = ” 2015-07-22 19: 56: 55,648 [15] DEBUG ExitGames.Diagnostics.Counter.CounterBase [(null)] – Création de NumericCounter: Name = ” 2015-07-22 19: 56: 55,651 [15] DEBUG ExitGames. Diagnostics.Counter.CounterBase [(null)] – Création de CountsPerSecondCounter: Name = ” 2015-07-22 19: 56: 55,654 [15] DEBUG ExitGames.Diagnostics.Counter.CounterBase [(null)] – Création de CountsPerSecondCounter: Name = ” 2015-07-22 19: 56: 55,656 [15] DEBUG ExitGames.Diagnostics.Counter.CounterBase [(null)] – Création de NumericCounter: Name = ” 2015-07-22 19: 56: 55,658 [15] DEBUG ExitGames.Diagnostics.Counter.CounterBase [(null)] – Création de CountsPerSecondCounter: Name = ” 2015-07-22 19: 56: 55,661 [15] DEBUG ExitGames.Diagnostics.Counter.CounterBase [(null)] – Création de NumericCounter: Name = ” 2015-07-22 19: 56: 55,663 [15] DEBUG ExitGames.Diagno stics.Counter.CounterBase [(null)] – Création de CountsPerSecondCounter: Name = ” 2015-07-22 19: 56: 55,666 [15] DEBUG ExitGames.Diagnostics.Counter.CounterBase [(null)] – Création de CountsPerSecondCounter: Name = ” 2015-07-22 19: 56: 55,668 [15] DEBUG ExitGames.Diagnostics.Counter.CounterBase [(null)] – Création de NumericCounter: Name = ” 2015-07-22 19: 56: 55,670 [15] DEBUG ExitGames.Diagnostics.Counter.CounterBase [(null)] – Création de CountsPerSecondCounter: Name = ” 2015-07-22 19: 56: 55,672 [15] DEBUG ExitGames.Diagnostics.Counter.CounterBase [(null)] – Création de CountsPerSecondCounter: Name = ” 2015-07-22 19: 56: 55,674 [15] DEBUG ExitGames.Diagnostics.Counter.CounterBase [(null)] – Création de NumericCounter: Name = ” 2015-07-22 19: 56: 55,686 [15 ] DEBUG Photon.SocketServer.ApplicationBase [(null)] – OnInit – ConnID = 2, IP 127.0.0.1 sur le port 4520, type = TCPListener 2015-07-22 19: 56: 55,716 [15] DEBUG Photon.SocketServer.Protocol [ (null)] – Message init analysé pour l’application maître, version client 3.0.5, proto col GpBinaryV2 version 1.6 2015-07-22 19: 56: 55,723 [11] DEBUG MMO.Photon.Application.PhotonConnectionCollection [(null)] – Demande d’initialisation reçue 127.0.0.1:4520 – Photon.SocketServer.InitRequest 2015-07-22 19: 56: 55,725 [11] DEBUG MMO.Photon.Application.PhotonApplication [(null)] – Demande d’initialisation reçue du sous-serveur 2015-07-22 19: 56: 55,758 [11] DEBUG Photon.SocketServer.ApplicationBase [(null )] – OnInit – réponse envoyée à ConnId 2 avec SendResult Ok

Journal de connexion:

2015-07-22 19: 56: 55,260 [14] DEBUG Photon.SocketServer.ServerToServer.TemporaryServerPeer [(null)] – OnOutboundConnectionEstablished: envoi de la demande d’initialisation 2015-07-22 19: 56: 55,260 [1] DEBUG MMO.Photon. Application.PhotonApplication [(null)] – Connexion au maître à 127.0.0.1:4520 2015-07-22 19: 56: 55,299 [1] INFO Photon.SocketServer.ApplicationBase [(null)] – Démarrage de l’application: AppId = Connexion; AppPath = C: \ Photon \ deploy \ ComplexServer, Type = LoginServer.LoginServer 2015-07-22 19: 56: 55,309 [14] DEBUG Photon.SocketServer.ServerToServer.TemporaryServerPeer [(null)] – SentInitRequest: ConnID = 2, ChannelId = 0, resultat = Ok taille = 41 octets 2015-07-22 19: 56: 55,762 [15] DEBUG ExitGames.Diagnostics.Counter.CounterBase [(null)] – Créer AverageCounter: Name = ” 2015-07-22 19 : 56: 55,765 [15] DEBUG ExitGames.Diagnostics.Counter.CounterBase [(null)] – Création de NumericCounter: Name = ” 2015-07-22 19: 56: 55,769 [15] DEBUG ExitGames.Diagnostics.Counter.CounterBase [ (null)] – Création de CountsPerSecondCounter: Name = ” 2015-07-22 19: 56: 55,771 [15] DEBUG ExitGames.Diagnostics.Counter.CounterBase [(null)] – Création de CountsPerSecondCounter: Name = ” 2015-07- 22 19: 56: 55,774 [15] DEBUG ExitGames.Diagnostics.Counter.CounterBase [(null)] – Création de NumericCounter: Name = ” 2015-07-22 19: 56: 55,776 [15] DEBUG ExitGames.Diagnostics.Counter. CounterBase [(null)] – Création de CountsPerSecondCounter: Name = ” 2015-07-22 19:56 : 55,783 [15] DEBUG ExitGames.Diagnostics.Counter.CounterBase [(null)] – Création de NumericCounter: Name = ” 2015-07-22 19: 56: 55,785 [15] DEBUG ExitGames.Diagnostics.Counter.CounterBase [(null )] – Création de CountsPerSecondCounter: Name = ” 2015-07-22 19: 56: 55,788 [15] DEBUG ExitGames.Diagnostics.Counter.CounterBase [(null)] – Création de CountsPerSecondCounter: Name = ” 2015-07-22 19 : 56: 55,790 [15] DEBUG ExitGames.Diagnostics.Counter.CounterBase [(null)] – Création de NumericCounter: Name = ” 2015-07-22 19: 56: 55,792 [15] DEBUG ExitGames.Diagnostics.Counter.CounterBase [ (null)] – Création de CountsPerSecondCounter: Name = ” 2015-07-22 19: 56: 55,795 [15] DEBUG ExitGames.Diagnostics.Counter.CounterBase [(null)] – Création de CountsPerSecondCounter: Name = ” 2015-07- 22 19: 56: 55,797 [15] DEBUG ExitGames.Diagnostics.Counter.CounterBase [(null)] – Création de NumericCounter: Name = ” 2015-07-22 19: 56: 55,813 [13] DEBUG MMO.Photon.Application. PhotonApplication [(null)] – Demande d’initialisation reçue du sous-serveur 2015-07-22 1 9: 56: 55,904 [13] DEBUG Photon.SocketServer.ServerToServer.ServerPeerBase [(null)] – SentOpRequest: ConnID = 2, opCode = 0, ChannelId = 0 résultat = Taille ok = 439 octets 2015-07-22 19:56 : 55 907 [13] DEBUG MMO.Photon.Application.PhotonApplication [(null)] – enregistrement du sous-serveur

Il est donc évident que ceci ou plus d’une erreur logique dans mon code, opposé à une syntaxe. J’ai essayé tellement de choses pour essayer de comprendre cela, mais rien n’a fonctionné. J’avais revu la vidéo 2 ou 3 fois et toujours rien. Si quelqu’un a une idée ou peut me diriger dans la bonne direction, ce serait génial!

Cheers, Devon.

Je n’ai pas pu répondre à votre question sur la vidéo YouTube, mais j’ai trouvé votre message ici.

Donc, le problème que vous avez rencontré est quelque chose que je n’ai pas réalisé jusqu’à plus tard dans la série. J’ai mystiquement manqué d’utiliser une classe en double. Le problème est que j’ai créé 2 classes ServerEventCode, ServerParameterCode et ServerOperationCode. L’un est dans ComplexServer et l’autre dans SubServerCommon. Si vous examinez le fichier ServerOperationCode, celui de SubServerCommon est le seul que le serveur de connexion peut utiliser et il est défini sur OpCode 0. Celui de ComplexServer est défini sur 1.

Ma recommandation est d’aller de l’avant et de supprimer celles de Complex Server (il suffit de supprimer le dossier “Codes” entier), de reconstruire le projet et de définir toutes les références à la version SubServerCommon afin qu’elles correspondent toujours. Il y a une vidéo plus tard où je fais la même chose, vous aurez juste fait quelques vidéos à l’avance.