私はソケットプログラミングが初めてで、それがどのように機能するかについてあまりわかりません。これがユースケースです。ユーザーが別のiPhoneデバイスから発信されたリアルタイムオーディオをストリーミングするiPhoneアプリを開発しています(つまり、マルチキャスティング)
私がこれまでに行ったこと:
クライアントからの着信データをリッスンし続けるサーバーでポートを開きました。iOS側では、サーバーで受信したパケットを読み取り、それに応じて処理するメソッドを実装しました(GCDAsyncSocketを使用しました)
助けが必要な問題:
上記の使用例は、2 人のユーザーに最適です。1 人はオーディオ データをサーバーに送信し、もう 1 人はそのデータを読み取ってオーディオを再生します。しかし、実際には、音声データを発信する単一のユーザーが常にいるとは限りません。100 以上になる可能性があります。すべてのユーザーが異なる音声データをサーバーに送信している場合、リスナーのデータをフィルター処理して、全員がそのデータのみを受信するようにするにはどうすればよいでしょうか。この問題を克服して、すべてのパケットにトークンを追加します
unique_token:<ffdefa09 fedead3...... //Audio Data
ただし、すべてのクライアントがすべてのパケットをリッスンし、割り当てられたトークンを持つパケットのみを処理するため、このプロセスは遅すぎます。
とにかく、元のデバイスがサーバーになり、リスナーにのみデータを送信し、他の人を気にしないピアツーピア接続を作成できますか?