2011-12-17 4 views
0

red5とflexを使用してオンラインゲームを開発しています。 RTMP接続を使用します。私はnetConnection.callだけを使用しました。私の問題はred5コールが同期マナーに来ていないです。いくつかのコールがクライアントに突然来ていて、突然いくつかのコールに時間がかかります。私はこの呼び出しをクライアント側に届けるようにしたい。いずれかを助けてください...Red5 NetConnection呼び出しを同期させる方法

答えて

0

以下は私の意見ですが、これを行うにははるかに良い方法があると確信しています。

  1. NetConnection.callの実行を担当するクラスを作成します。このクラスでは、前の呼び出しが完了する前に呼び出しが行われていないことを確認してください。順序を保証しますが、実行は遅くなります。
  2. 次のようなクラスを作成します。データ構造が必要です。最も単純な形式の配列かもしれません。配列には、呼び出し順序、コールバック関数、およびサーバーから返された結果を保持するオブジェクトが含まれます。メソッドを呼び出すときは、それらの呼び出しを呼び出し順序で配列に追加します。サーバーから結果を受け取ったら、配列をチェックしてください。以前の呼び出しがまだ返されていない場合は、配列に格納します。保留中の前回の呼び出しがない場合は、コールバック関数に「後で呼び出されたがこれより前に終了した」関数を呼び出し、配列からその項目を削除します。

しかし、アプリケーションに何らかの結果が必要な場合は、アーキテクチャを考慮する必要があります。ほとんどの場合、慎重に考えられたイベント処理メカニズムは、必要性または順序付けられた結果を取り除きます。

0

Red5は、同期およびマルチスレッドアクセスをサポートする2つのアプリケーションアダプタを提供します。それらを使用するには、アプリケーションのsyncまたはorg.red5.server.adapter.MultiThreadedApplicationAdapterのorg.red5.server.adapter.ApplicationAdapterを単に拡張します。

関連する問題