優秀な質問!私はserversync packageと書いていたので、最近これを広範囲に実験していました。どのような私が見つけたことはこれです:
DDPピングのタイムアウトに達していない場合、すなわち、切断はごく簡単です:いつものように
ビジネス、イベントは起こりません。クライアントからのデフォルトのDDP pingタイムアウトは30秒だと思います。
エルス
:
限り、あなたは、サーバー上のautopublishパッケージを使用しないでくださいとして、クライアントはは、再接続時に再びそのobserveChanges
ハンドラを起動しません。 に自動公開を使用すると、コレクションの各ドキュメントに対してadded
イベントが発生します。あなたはボンネットの下に、DDP ははすなわち、それぞれにDDPは、コレクションの完全なコピーを送信し再接続し、それぞれの再接続時にクライアントにadded
メッセージを送信しないこと。知ることに興味があるかもしれません
これは、自動公開を使用するかどうかにかかわらず発生します。しかし、クライアントはすでにこれらの文書のどれを知っているか知るほどスマートであると思われるので、彼がすでに持っている文書に対して実際のobserveChanges
イベントを起動せず、新しいもの、変更したもの、削除したものだけを起動します。多くの切断が予想される場合は、特に大規模なコレクションを公開する場合にネットワークトラフィックを大幅に増加させるため、DDPのこの動作は依然として関連している可能性があります。私は、これはdocs of onConnectionで次のノートの枝分かれであると信じて:
クライアントが(例えば、一時的にインターネット接続を失った後など)サーバーに再接続現在のところとき、それは毎回新しい接続を取得します。 onConnectionコールバックが再度呼び出され、新しい接続に新しい接続IDが設定されます。
将来、クライアントの再接続が完全に実装されると、クライアントからの再接続はサーバー上の同じ接続に再接続します。その接続に対してonConnectionコールバックは再び呼び出されず、接続は同じままです接続ID。
本当に便利です! observeChangesの仕組みはネットワークの問題に耐えるように設計されているようですね。すなわち、リンクが機能するまで、コールバックは論理的に待ち行列に入れられる。これに対処するメテオの文書はありますか? –