0

組み込みデバイス (xMega128(C) ベース) と Android アプリ間のデータ交換を可能にするソリューションを考え出そうとしています。問題は、データ交換をインターネット経由で行う必要があり、組み込みデバイスとアプリを実行するモバイル デバイスの両方が異なる NAT の背後にあり、異なる ISP、3G、LTE などを使用して接続できることです。

UDP ホール パンチングを試しましたが、対称 NAT では機能しません。予測付きの多穴パンチングも、100% の信頼性を保証するものではありません。ICE の使用も検討しましたが、ICE C ライブラリ (pjnath、libnice) は選択したハードウェアと互換性がありません (ライブラリには os が必要です)。現在、トラフィックリレーサーバーの実装または使用 (存在する場合) を検討していますが、それは私にはハックのように思えます。

私が考慮していなかった他のオプションはありますか?どんな助けでも大歓迎です。

理想的には、通信スキームは次のようになります。

  • 100%信頼できる

  • 比較的低遅延 (絶対最大 3 秒)

  • スケーラブル (将来的には最大 50 万デバイス)

  • アプリとデバイスの両方で初期化可能

  • マルチユーザー – 1 つのデバイスが多数の Android アプリに接続します

また、これが役立つ場合、デバイスとアプリの間のデータ交換はそれほど激しくありません。1 時間あたり約 1 セッション、1 セッションあたり最大 50 件のメッセージが 10 ~ 20 秒間隔で送信され、各メッセージの重量は約 100 バイトです。

4

2 に答える 2

0

両方のエンドポイントが制御できない異なる NAT の背後にある限り、確実に機能しません。とんでもない。リレーが必要です。

于 2016-04-06T08:08:29.740 に答える