5

チャットルーレットの背後にあるアーキテクチャについて説明してもらえますか? オーディオサポートのみを実装する同様のプロジェクトについて考えていました(初心者向け)。これをフラッシュサーバーにセットアップする最良の方法はありますか? もしそうなら、どのようにフラッシュに取り掛かるべきですか? flex 4 が必要ですか? 私は C++、C#、および Java の初心者経験がありますが、Web 用に何かを開発したことはありません。

また、ランダマイザーが参加者をどのように照合するのか疑問に思っていました. このようなコードをどのようにコーディングしますか。

ここでは明らかに無知であり、この問題に関するアドバイスをいただければ幸いです。コピーと貼り付けの解決策は期待していません。皆さんがこの問題にどのように取り組むかを聞いていただければ幸いです。

どうもありがとうございました

4

3 に答える 3

12

私の知る限り、ChatRoulette は、Flash Player インスタンス間のピアツーピア接続を可能にする、コードネーム Stratus という Flash Player 10.1 の新しい API セットを使用します。

そのため、ビデオとオーディオのストリームが特別なストリーミング サーバーにプッシュされる代わりに、FMS や Red5 のような一意の ID が共有され、ピア同士が直接接続されます。

これにより、サーバー ストリームへの 1 つの接続を近隣のサーバー間で共有できるイベントのライブ ストリーミングのサーバー負荷を軽減する大きな可能性があります。

Stratus がピア間でストリームを直接プッシュしていなかった場合、ChatRoulette のようなもののホスティング料金を想像できますか?!

詳細を知りたい場合は、ストラタスのアドビの若者に関するセクションをご覧ください: http://labs.adobe.com/technologies/stratus/

于 2010-04-15T09:19:07.223 に答える
4

どのように参加者を一致させることができますか? 簡単。最初はnullに設定されている「待機中のユーザー」という名前の変数があります。ユーザーが接続するとき、「待機中のユーザー」が null の場合、接続中のユーザーを待機中のユーザーにします。待機中のユーザーが null でない場合は、これら 2 人のユーザーの会話を管理する新しいスレッドを作成し、待機中のユーザーを null に設定します。この「ランダム性」とは、多くの訪問者がいる場合、会話はランダムであるべきであることを意味します。ただし、一度に 10 人しか会話をしていない場合、驚くべき結果が得られるわけではありません。これが機能するには、絶え間ない切断/接続が必要です。

actionscript を使用すると、[use google to get more info] 経由でマイク デバイスに簡単にアクセスできますMicrophone.get()... 受信したデータをサーバーにフィードする必要があります。

HTTP ヘッダーをノンストップで送信する必要がないように、ソケットを作成する必要があります [actionscript はこれをサポートしています。flash.net を調べてください。[Socket/Sockets? 私は忘れて]]、カスタムで書かれたサーバーに接続します。これはC#で簡単に実行できます... C ++で試したことはなく、Javaで作業したこともありません...

サーバーは、2 つのクライアント間の「プロキシ」として機能します...

于 2010-04-15T07:06:58.210 に答える
1

ライセンスの制限により本番環境で使用できない Adob​​e の cirrus ではなく、wowza のストリーミング サーバーを使用します。

http://www.streamingmedia.com/Articles/News/Featured-News/The-Tech-Behind-Chatroulette-66278.aspx

于 2011-07-31T14:36:57.377 に答える