Wowza::6.サーバーからクライアントのメソッドを呼び出す6-1.サーバーからクライアントのメソッドを呼び出す前回はクライアントからサーバーのメソッドを呼び出してみました。今回は反対にサーバーからクライアントのメソッドを呼び出してみます。サーバー側のメソッドは前回利用したdoSomethingに追加してみます。}4行目、client.callの部分が追加した箇所になりますが、もうFlashMediaServerの書き方とまんま同じですね。ここでは、クライアント側のcallSuccessというメソッドを呼び出しています。メソッドの第2引数にnullを渡していますが、これはコールバックを受け取るオブジェクトを渡す部分です。コールバックの受け取り方は後ほど紹介します。クライアント側のコードを確認。ActionScript3でクライアントからの呼び出しを受け取るにはNetConnectionクラスのclient変数にレシーブ用のクラスをセットするか、NetConnectionクラスを継承したクラスに受け取り用のメソッドを用意することになります。今回は後者の方法で実装を行います。testというデバックがコンソールに書き出されます。6-2.色々渡してみるそれでは引数に色々な値を渡してFlash、Wowza間のデータのやりとりを確認してみましょう。}配列を渡してみます。受け取り側ではArray型の引数を1つ受け取るかと思いきや、String型の引数が2つやってきました。}これで値を受け取ることができます。ついでに以下のように書き換えて見ます。}受け取り側の引数は3つになると予測しましたが、実際は2つでした。traceの結果は、一つ目の引数が[Ljava.lang.String;@19ed7eでした。2つめは予想通りtest3だったのですが・・・。調べたところ、一つ目の引数に配列、二つめの引数に文字列を渡したい場合は以下のように書けば良いようです。}AMFDataArrayクラスを用いてみました。FlashとWowza間はAMF形式で通信を行っているのでうまく行けばと思いましたが、当たりでした。}6-3.コールバックを受け取るclient.callの2つ目に渡していたnull。この部分にコールバック取得用のクラスを渡してみます。FlashMediaServerのコードに近いので、経験のある方はすんなり理解できると思います。}コールバック用のクラスを定義、インスタンス化してclient.callの2つ目の引数に渡します。クライアントから値が返された場合は、onResult関数が実行されます。返された引数はAMFDataList型に収められており、getString(PARAM1)という風に取り出すことが可能です。}シンプルに文字列を返すだけにしてあります。test!!"という出力を得ることができました。以上で、サーバーからクライアントのメソッドを呼び出す処理の解説を終わります。次回はサーバーに接続しているクライアント全体に処理をおこなう方法をIApplicationクラスと、IApplicationInstanceクラスの使い方をあわせて紹介しようと思います。テキストチャットを作成してみる8.Linux(CentOS)環境にインストールする9.動画を配信、再生する10.SharedObjectを利用する11.ログイン処理のサンプル12.動画再生(動画ファイル編)13.AMFDataByteArrayで画像をサーバーに送信14.WowzaMediaServer2でSilverlight配信15.WowzaMediaServer2でLiveStreaming配信ActionScript3Papervision3DFlashMediaServerRed5WowzaMediaServerトッププログラミング書籍紹介サイト製作四方山噺Macブログ。