5

ウェアラブルとスマートフォンの間でイベントを同期しています。イベントが切断されていても電話で受信したいので、DataAPIの代わりにMessageAPIを使用し始めましたが、「同期」には 0.1 ~ 0.5 秒ではなく約 1 ~ 2 秒かかります (認識されたタイミング)。

メッセージの場合、"/notification/click" のような文字列パスと 2 バイトの生データを送信しています。DataAPI の場合、パス「/notification/click/1」と 1 バイトの生データを使用します。あなたもその行動を見ましたか?デバイスがオフラインの場合にのみ DataAPI を使用することを除いて、それを固定するためのトリックを知っていますか?

いくつかのコードを見たい場合は、コメントを残してください。そのコードには定型コードがたくさんあるので、(まだ)追加しませんでした。

4

2 に答える 2

2

接続されているノードNodeApi.getConnectedNodes()を検索して、空でないかどうかを確認することで、接続されているかどうかを確認できます。しかし、これが最善の解決策だとは思いません。

情報を迅速かつ確実に配信する必要がある場合は、メッセージを送信し、データ項目を設定します。両方に一意の識別子を追加して、2 番目に配信されるものを無視できるようにします。このようにして、接続されている場合、メッセージをすぐに受け取り、後でデータ項目を無視します。接続していない場合、メッセージは失われますが、データ項目は保持され、最終的にアクションを完了する必要があります。次のケースを処理するには、一意の識別子を保持する必要があります。

  1. メッセージの配信、アクションの完了、
  2. 何らかの理由で再起動し、
  3. データ項目は最終的に配信されるため、無視する必要があります。
于 2015-03-01T18:11:56.467 に答える
0

はい、私のテスト結果では、データ API はメッセージ API よりも遅いです (数倍ではなく、上記の 2 倍)。メッセージ速度を上げる方法を試すことができます。データ API は 100KB を超えるデータサイズに対応したアセットを送信できるという特徴がありますが、メッセージ API は 100KB を超えるデータサイズをサポートできません。送信メッセージの共通インターフェースを使用し、送信するデータ サイズを確認し、100KB を超える場合はデータ API アセットを使用して送信し、そうでない場合はメッセージ API を使用します。これは私のアプリを高速化するためのものです

于 2015-03-05T05:21:55.840 に答える