2017-02-07 14 views
1

私はリアルタイムのアップデートでブラウザアプリケーションを構築しています。プッシュャーは再接続後にイベントを受信しません

アプリケーションでは、オンラインで他のユーザーと一緒にスプレッドシートを読み取り、編集することができます。

ただし、一部の人のインターネット接続が不十分で接続が切断されることがあります。

インターネット再接続後にアプリケーションが最新のデータに更新できるようにします。そう

現在、プッシャーやアプリケーション作業:

  1. プッシャーは、サーバーに接続してイベントを受け取ります。
  2. 他の人がスプレッドシートを変更します。
  3. アプリケーションはPusherからこれらの変更を受け取り、スプレッドシートに反映させることができます。
  4. しばらくしてインターネットが消えます。
  5. プッシャーがこれを検出し、と自動的にが再接続しようとします。
  6. 他の人がスプレッドシートを変更します。
  7. インターネットに接続していないため、アプリケーションはこれらの変更を受信できません。
  8. しばらくすると、たとえば5分後にインターネット接続が正常になったようです。
  9. プッシャーがサーバーに正常に再接続しました。
  10. ただし、プッシャーは、インターネット接続がない期間(リスト項目#6)からのイベントを受信しません。
  11. 他の人が変更を行います。
  12. プッシャーはイベントを受信し、アプリケーションはそれらを処理できます。

私の問題は:プッシャーは、インターネットの切断中に他の人によって引き起こされた自動再接続後にイベントを受信しません。

私はデフォルトのプッシャー設定、プライベートチャンネル、最新の安定版を使用していますし、魔法も行いません。

答えて

3

プッシャーは現在、この機能を提供していません。これを自分で実装するには、値が増えた各メッセージと共に数値IDを送信する必要があります。また、送信されたすべてのメッセージのキャッシュをデータベースに格納する必要があります。クライアントは、最後に受信したIDを追跡することができます。接続を解除して再接続すると、受信した最後のメッセージIDよりも大きなすべてのメッセージを要求するリクエストをサーバーに送信できます。サーバーは、データベース内のその照会と一致するメッセージで応答する必要があります。

+0

現在のところ私はそのような実装をしていますが、プッシャーはプレーンなHTTP要求を使用していません。一般的に、2秒ごとに新しいイベントをチェックし、最後に受信したイベントIDを保存します。しかし、これは遅いので、私はプッシャーに切り替えることにしました。 – yivo

+0

私はプッシャーには失望しています。この動作はドキュメントには記載されていません。 – yivo

+0

ありがとう、ウィルスウェル。私はあなたの答えを受け入れたものとしてマークし、プッシャーの代替案を探したり、リアルタイムモジュールをそのまま残したりしようとします。 – yivo

関連する問題