PouchDB のレプリケート()ドキュメントcontinuous
によると、次のオプションを追加できPouch.replicate()
ます。
true の場合、最初のデータベースの変更をサブスクライブし、2 番目のデータベースにレプリケートします。
これの意味は理解できましたが、どのように機能しますか? コードを見てきましたが、「サブスクライブ」がどのように行われるかを理解するのは困難です。
最初のデータベースが何であるかによって異なります。
リモート CouchDB の場合、pouch はその couchdbxhr
のリソースにリクエストを行います ( http://wiki.apache.org/couchdb/HTTP_database_API#Changes )。キムが述べたように、実際にはfeed=longpollを設定します。このオプションは、何も送信する前に変更があるまでカウチを待機させます。このようにして、変更がないことを確認するためだけにポーリングすることはありません。db/_changes
longpoll
最初のデータベースがローカル PouchDB の場合、データベースで変更が行われるたびにトリガーされる「変更」イベントをリッスンします。
どちらの方法でも、レプリケーターが変更を確認すると、それを 2 番目のデータベースにレプリケートします。
私は PouchDB コードを読んでいませんが、それを行う唯一の方法は、おそらくまたはに設定して_changes
feedをリッスンすることです。feed
long-polling
continuous