Bonjour !
Etant donné, que je me suis connecté avec succès et que j'ai tout bien parsé le header des sockets que je reçoie (youpie), je cherche maintenant à parser le corps !
Alors, je commence avec le premier socket que je reçois (ProtocolRequired), parceque c'est le premier et qu'il est assez court, donc grace aux enums que j'ai recupérer et son id, j'en déduit le fichier ou il est désérializé: ProtocolRequired.as.
Je vais directement à la function qui m'interesse: unpack(arg1) -> deserialize(arg1) -> deserializeAs_ProtocolRequired(arg1)
deserializeAs_ProtocolRequired
C'est une fonction assez simple, ce qui est vraiment bien pour mon apprentissage, j'en déduis qu'il check si le jeu est à la bonne version au nom des variables, donc je commence dans un premier temps à penser ma traduction, this.requireVersion = param1.readInt() Ok, en voyant la docu as3
, donc je dois lire le buffer en int32, je pense utiliser la fonction readInt32BE() de l'API Buffer node, (corrigez moi si je me trompe).
Ensuite on passe à this.currentVersion = param1.readInt() ok.. WAIT!! C'est pas deux fois la même chose ça ?!
Je suis perdus là.. o-o
Ducoup j'ai deux questions:
1) La fonction que j'ai choisie, ( readInt32BE() ), est-elle bonne ?
2) Comment fonctionne cette function ? :$
Merci !
Etant donné, que je me suis connecté avec succès et que j'ai tout bien parsé le header des sockets que je reçoie (youpie), je cherche maintenant à parser le corps !
Alors, je commence avec le premier socket que je reçois (ProtocolRequired), parceque c'est le premier et qu'il est assez court, donc grace aux enums que j'ai recupérer et son id, j'en déduit le fichier ou il est désérializé: ProtocolRequired.as.
Je vais directement à la function qui m'interesse: unpack(arg1) -> deserialize(arg1) -> deserializeAs_ProtocolRequired(arg1)
deserializeAs_ProtocolRequired
Code:
public function deserializeAs_ProtocolRequired(param1:ICustomDataInput) : void
{
this.requiredVersion = param1.readInt();
if(this.requiredVersion < 0)
{
throw new Error("Forbidden value (" + this.requiredVersion + ") on element of ProtocolRequired.requiredVersion.");
}
this.currentVersion = param1.readInt();
if(this.currentVersion < 0)
{
throw new Error("Forbidden value (" + this.currentVersion + ") on element of ProtocolRequired.currentVersion.");
}
}
Reads a signed 32-bit integer from the byte stream.
Ensuite on passe à this.currentVersion = param1.readInt() ok.. WAIT!! C'est pas deux fois la même chose ça ?!
Je suis perdus là.. o-o
Ducoup j'ai deux questions:
1) La fonction que j'ai choisie, ( readInt32BE() ), est-elle bonne ?
2) Comment fonctionne cette function ? :$
Merci !