Question

Voici mon problème: j'ai un objet NetConnection connecté à un serveur. En plus je crée un objet NetStream et il a commencé à lire un fichier à partir du serveur. Classique jusqu'à présent.

Ce que je dois maintenant, est d'être en mesure d'envoyer des messages (court) sur le serveur, à différents moments de temps de jeu, mais, clairement, en utilisant la connexion TCP existante .

D'après ce que je peux lire dans la docs , l'objet NetConnection sous-jacents « supports de connexion bidirectionnelle entre un client et un serveur » et, évidemment, les supports de couche TCP elle. Je suis assez bien au courant des concepts de réseau TCP, mais certainement pas de la façon dont les outils Flash les.

  1. Est-ce exact? Peut-il être fait en utilisant NetConnection (ou un autre mécanisme)?

  2. Comment dois-je à faire cela (un exemple serait génial, mais une description conceptuelle du processus travaillerais aussi bien). Comment puis-je envoyer exactement un message du client au serveur via NetConnection?

  3. L'objet NetStream actif interférer en aucune façon avec une telle opération?

Merci.

Était-ce utile?

La solution

Oui, vous pouvez.

Je suppose, nous parlons de la connexion à Flash Media Server.

Utiliser la méthode NetConnection.call () qui exécute à distance procédé de script côté serveur.

public function call(command:String, responder:Responder, ... arguments):void

Vous devez définir cette méthode côté serveur comme un prototype de classe client de connexion

par exemple.

Client.prototype.MyMethod = function(arg)
{
trace("Server received " + arg + "\n");
}

appeler cette méthode devrait ressembler à:

var nc:NetConnection;

//initialize net connection and connect

nc.call("MyMethod", null, "Hello, server");

Si vous avez besoin pour obtenir un résultat -. L'utilisation Responder instance de classe au lieu de null

Si vous avez besoin serveur à utiliser la méthode du client d'appel côté serveur fonction « d'appel » sur l'objet client. Dans ce cas, vous devrez définir un objet à côté client, la méthode a Wich de rappel:

Côté client:

var obj = new Object();
obj.MyCallback = function(arg:Object)
{
trace ("Received message from server: " + arg as String);
}
nc.client = obj;

côté serveur:

clientObject.call("MyCallback", null, "Hello, client");

Cordialement, David.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top