red5 と flex を使用してオンライン ゲームを開発しています。RTMP 接続を使用します。netConnection.call のみを使用しました。私の問題は、red5 呼び出しが同期されていないことです。一部の通話が突然クライアントに着信し、一部の通話に時間がかかっています。この呼び出しを順番にクライアント側に到達させたいです。誰か助けてください...
2 に答える
0
以下は私の意見です、私はこれを行うためのはるかに良い方法があると確信しています。
- NetConnection.callの実行を担当するクラスを作成します。このクラスでは、前の呼び出しが完了する前に呼び出しが行われないことを確認してください。順序は保証されますが、実行は遅くなります。
- 次のようなクラスを記述します。データ構造、おそらく最も単純な形式の配列が必要です。配列には、呼び出し順序、コールバック関数、およびサーバーから返された結果を保持するオブジェクトが含まれています。メソッドを呼び出すときは、それらの呼び出しを呼び出し順に配列に追加します。サーバーから結果を受け取ったら、配列を確認します。以前の呼び出しがまだ返されていない場合は、それらを配列に格納します。保留中の以前の呼び出しがない場合は、コールバック関数を「後で呼び出されたが、これより早く終了した」関数を呼び出し、その項目を配列から削除します。
ただし、(常にred5があります)、アプリケーションで何らかの結果が必要な場合は、アーキテクチャを検討する必要があります。ほとんどの場合、慎重に検討されたイベント処理メカニズムにより、必要性や順序付けられた結果が削除されます。
于 2011-12-19T17:31:35.487 に答える
0
Red5 は、同期アクセスとマルチスレッド アクセスをサポートする 2 つのアプリケーション アダプタを提供します。それらを使用するには、同期のために org.red5.server.adapter.ApplicationAdapter を拡張するか、アプリケーションで org.red5.server.adapter.MultiThreadedApplicationAdapter を拡張します。
于 2012-10-21T13:25:15.510 に答える