0

リアルタイム通知をサブスクライブするときは、通常のハンドシェイク、サブスクライブ、接続フローを実行します。接続がイベントで返されたら、再接続して次の応答が返されるのを待ちます。私の質問は次 のとおりです。イベントが最初の応答と次の再接続で生成された場合、それらは失われる可能性がありますか?

例: 返された応答データを処理した後に処理し、データ処理が終了してから再接続する同期アプリケーションでは、応答と次の再接続の間に大幅な遅延が発生する可能性があります。その遅延中に生成された cumulocity イベントは、その特定のクライアント ID のリアルタイム キューにバッファリングされていますか?それとも単に失われているのでしょうか?

もう 1 つの例として、クライアント ID が無効になった場合 (これは毎日午前 0 時に発生するようです)、再登録する必要があり、その間は誰も登録していません。

4

1 に答える 1

0

ハンドシェークがサーバー側のキューに接続されたときに受け取るクライアント ID。そのキューは、次の接続まで受信できないすべての通知を保持します。再接続するとそれらが配信されます。(Postman で試してみてください。接続が戻った後、いくつかのイベントを送信してから、再度接続します。一度にすべてのイベントを取得できることがわかります。)

ただし、お気づきのとおり、キューは永久に保持されるわけではありません。2 時間以内に再接続できない場合 (私は信じています)、サーバー リソースをブロックしないようにキューを破棄します。これはあなたが気づいたことです。その場合、データベースにクエリを実行して、見逃したイベントを特定する必要があります (たとえば、保留状態の操作をデバイスからポーリングします)。

于 2016-03-08T14:14:15.317 に答える