Kann ich Senden von Nachrichten über den zugrunde liegenden NetConnection- eines Empfangs (Wiedergabe) NetStream-Objekt?

StackOverflow https://stackoverflow.com/questions/3538681

Frage

Hier ist mein Problem: Ich habe ein NetConnection-Objekt mit einem Server verbunden. Oben erstelle ich ein NetStream-Objekt, und es begann eine Datei vom Server zu spielen. Klassisch so weit.

Was ich jetzt brauche, ist in der Lage sein, eine (kurze) zum Senden von Nachrichten an den Server zurück, zu verschiedenen Zeitpunkten während der Spielzeit aber deutlich, mit der bestehenden TCP-Verbindung .

Von dem, was ich lesen kann in der docs , die zugrunde liegenden NetConnection-Objekt unterstützt „zwei-Wege-Verbindung zwischen einem Client und einem Server“ und natürlich die TCP-Schicht unterstützt. Ich bin mir bewusst, TCP Vernetzung Konzepte ziemlich gut, aber auf jeden Fall nicht, wie Flash-Geräte sie.

  1. Ist das richtig? Kann es (oder einen anderen Mechanismus) mit NetConnection- getan werden?

  2. Wie würde ich mich über das tun dies (ein Beispiel wäre toll, aber eine konzeptionelle Beschreibung des Prozesses genauso gut funktionieren würde). Wie genau ich eine Nachricht vom Client zum Server über NetConnection schicken?

  3. Ist die aktive NetStream-Objekt stören in keiner Weise mit einer solchen Operation?

Danke.

War es hilfreich?

Lösung

Ja, Sie können.

Ich gehe davon aus, wir sprechen über Verbindung zu Flash Media Server.

Verwendung NetConnection.call () Methode, die entfernt serverseitige Skriptmethode ausführt.

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

Sie haben diese serverseitige Methode als Prototyp der Verbindung Client-Klasse definieren

z.

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

Dann Aufruf dieser Methode sollte wie folgt aussehen:

var nc:NetConnection;

//initialize net connection and connect

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

Wenn Sie etwas Ergebnis zu erhalten -. Beispiel Verwendung Responder-Klasse anstelle von null

Wenn Sie Server-Methode des Anruf-Client verwenden serverseitige „call“ -Funktion auf Client-Objekt. In diesem Fall müssen Sie einig Objekt auf Client-Seite definieren müssen, Weicht die Callback-Methode hat:

Client-Seite:

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

Server-Seite:

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

Viele Grüße, David.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top