受信(再生)NetStreamオブジェクトの基礎となるNetConnectionを介してメッセージを送信できますか?
-
30-09-2019 - |
質問
私の問題は次のとおりです。サーバーに接続されたNetConnectionオブジェクトがあります。上にNetStreamオブジェクトを作成すると、サーバーからファイルを再生し始めました。これまでのところクラシック。
今必要なのは、プレイタイム中のさまざまな瞬間に、いくつかの(短い)メッセージをサーバーに送り返すことができることですが、明らかに、 既存のTCP接続を使用します.
私が読むことができるものから ドキュメント, 、基礎となるNetConnectionオブジェクトは、「クライアントとサーバー間の双方向接続」をサポートし、明らかにTCPレイヤーがサポートしています。私はTCPネットワーキングの概念をかなりうまく認識していますが、フラッシュがそれらをどのように実装するかについては間違いありません。
これは正しいです? NetConnection(または他のメカニズム)を使用して実行できますか?
これを行うにはどうすればよいですか(例は素晴らしいことですが、プロセスの概念的な説明も同様に機能します)。 NetConnectionを介してクライアントからサーバーにメッセージを正確に送信するにはどうすればよいですか?
アクティブなNetStreamオブジェクトは、そのような操作に何らかの形で干渉しますか?
ありがとう。
解決
はい、できます。
Flash Media Serverへの接続について話していると思います。
サーバー側のスクリプトメソッドをリモートで実行するnetconnection.call()メソッドを使用します。
public function call(command:String, responder:Responder, ... arguments):void
このサーバー側の方法を接続クライアントクラスのプロトタイプとして定義する必要があります
例えば
Client.prototype.MyMethod = function(arg)
{
trace("Server received " + arg + "\n");
}
次に、この方法を呼び出すことは次のようになります。
var nc:NetConnection;
//initialize net connection and connect
nc.call("MyMethod", null, "Hello, server");
何らかの結果を得る必要がある場合は、nullの代わりにレスポンダークラスインスタンスを使用します。
クライアントのメソッドを呼び出すためにサーバーが必要な場合は、クライアントオブジェクトにサーバー側の「呼び出し」機能を使用します。この場合、クライアント側でいくつかのオブジェクトを定義する必要があります。Wichにはコールバック方法があります。
クライアント側:
var obj = new Object();
obj.MyCallback = function(arg:Object)
{
trace ("Received message from server: " + arg as String);
}
nc.client = obj;
サーバ側:
clientObject.call("MyCallback", null, "Hello, client");
よろしく、デビッド。