p2p アプリケーションの NetStream クライアントにカスタム コールバック ハンドラを追加しようとしています。問題は、そのようなハンドラーを追加すると、NetStream クライアントが以前のように機能しないことです。NetStream.client オブジェクトが変更されたようです。デフォルトのオブジェクトがこれであることは知っています。しかし、クライアントをこれに変更しても問題は解決しません。
remoteControlStream は着信ストリームです。そして、localControl ストリームは公開されているストリームです
これは、ピアによって送信され、remoteControlStream として受信される localControlStream です。
private function initLocalControlStream():void{
localControlStream = new NetStream(nc, NetStream.DIRECT_CONNECTIONS);
localControlStream.addEventListener(NetStatusEvent.NET_STATUS, localControlHandler);
localControlStream.publish(myPeerID+"control");
var localControlStreamClient:Object = new Object();
localControlStreamClient.onPeerConnect = function(callerns:NetStream):Boolean{
txtTest.text = "peer connected";
if(side=="host"){
farPeerID = callerns.farID;
if(!allreadyConnected){
initRemoteControlStream();
allreadyConnected = true;
}
}
return true;
}
localControlStream.client = localControlStreamClient;
}
これは、ストリームを受信している NetStream です。
private function initRemoteControlStream():void{
txtTest.text = "setting up remote stream";
if(side=="client"){
farPeerID = this.parameters.hostFingerprint;
}
remoteControlStream = new NetStream(nc, farPeerID);
remoteControlStream.addEventListener(NetStatusEvent.NET_STATUS, remoteControlHandler);
remoteControlStream.client.test = new function():void{
txtTest.text = "Callback handler working";
}
remoteControlStream.play(farPeerID+"control");
remoteControlStream.client = this;
}
このように remotecControlStream にハンドラーを追加します (上記のように):
remoteControlStream.client.test = new function():void{
txtTest.text = "Callback handler working";
}
上記のハンドラを追加すると、接続時に localControlStream の onPeerConnect メソッドが呼び出されません。そのハンドラを削除すると、onPeerConnect メソッドが呼び出されます。
アドバイス/アイデアをお持ちの方。明らかに問題は NetStream.client です。
よろしくお願いいたします。
ジェラルド