2011-07-12 3 views
0

すべては質問に..
私はiPad/iPhone(送信者)と他の多くのデバイスのiPad/iPhone間の接続を作成する方法を知っていますリスナー)。チャレンジは次のとおりです。中間サーバーを使用せずにこれを作成する必要があります。
各デバイスリスナーは、各送信者メッセージに「ライブ」で応答する必要があります。
これを実現する方法はありますか?どのようにサーバーなしで2つ以上のデバイス間の接続を作成する

答えて

1

Bonjourフレームワークを使用してください。デバイスは同じサブネット上になければなりませんが、サーバーを使用せずに接続できます。 AppleはBonjourフレームワークのサンプルコードを提供しています。私はBonjourを使用してアプリケーションをリリースしていませんが、私はBonjourでいくつかの開発/概念実証アプリケーションを行っています。

0

すべてのデバイスが同じLAN上にある場合は、ブロードキャストまたはマルチキャストUDPを使用して互いを検出し、(互いのIPアドレスを知っていれば)UDPまたはTCP経由で直接通信できます。 (もちろん、必要とされる直接TCP接続の数は、デバイスの数によって非常に迅速に増加するため、ある程度拡張することができます。UDPはさらに拡張することができます。デバイス)。

実際の問題は、デバイスがインターネット上のさまざまな場所に存在し、その一部またはすべてがNATおよびファイアウォールの背後にある場合です。その場合、頼りになるのは、デバイスが発信TCP接続を確立できるかどうかだけです。この場合、それぞれに直接接続することができないため、接続するサーバがほとんど必要になります他のほとんどの場合(NAT /ファイアウォールはセキュリティ上の理由から着信TCP接続パケットをフィルタリングします)。

0

Bluetooth経由でPeer-to-Peer connectivityをご覧ください(これはiOSのGameKit APIの一部です)。

+0

実際には、私はブルートゥースについて考えていましたが、距離の範囲が問題になる可能性があると思います。/アプリケーションを同じ部屋で使用する必要がある場合でも... – klefevre

+0

ええと..すべてのデバイスは@iPhone Guyと@Femiが提案したように、あなたはBonjourを使ってあなたが望むものを達成できるかもしれません。あなたがまだBluetoothを好むなら(そして行きたい:))、各デバイスが「現在の」デバイスのリストを維持し、真のP2P方式でメッセージを発信元から宛先にルーティングできるソリューションを実装できるかどうかを確認してください。 Bluetooth経由で過度に使用されるかもしれない! – octy

関連する問題