Database Reference
In-Depth Information
Geben Sie einen since -Wert an, der über der letzten Sequenznummer liegt,
bleibt die Antwort leer:
$ curl http://localhost:5984/music/ _ changes?since=9000
{
"results":[
],
"last _ seq":9000
}
Mithilfe dieser Methode würde die Client-Anwendung regelmäßig prüfen, ob
neue Änderungen vorgenommen wurden und anwendungsspezifisch entspre-
chend reagieren.
Polling ist eine feine Lösung, wenn Ihre Anwendung zeitliche Verzögerungen
zwischen den Updates toleriert. Sind Update relativ selten, könnte das der
Fall sein. Wenn Sie beispielsweise Blog-Einträge abrufen, könnte ein Polling
alle fünf Minuten reichen.
Wenn Sie schnellere Updates wünschen, ohne den Overhead durch das stän-
dige erneute Öffnen der Verbindung zu erhöhen, dann ist das sog. Long-Pol-
ling die bessere Option. Geben Sie den URL-Parameter feed=longpoll mit
an, hält CouchDB die Verbindung eine gewisse Zeit aufrecht (und wartet auf
Änderungen), bevor es den Request abschließt. Versuchen Sie Folgendes:
$ curl 'http://localhost:5984/music/ _ changes?feed=longpoll&since=9000'
{"results":[
Sie sollten den Anfang einer JSON-Response sehen, aber sonst nichts. Wenn
Sie das Terminal lang genug offen lassen, wird die Verbindung irgendwann
von CouchDB geschlossen:
],
"last _ seq":9000}
Aus der Sicht eines Entwicklers ist das Schreiben eines Treibers, der
CouchDB auf Änderungen mittels Polling überwacht, identisch mit der Ent-
wicklung eines Longpolling-Treibers. Der Unterschied besteht eigentlich nur
darin, wie lange CouchDB gewillt ist, die Verbindung aufrecht zu halten. Wir
wollen unsere Aufmerksamkeit nun einer Node.js-Anwendung widmen, die
mögliche Änderungen überwacht und die erfassten Daten nutzt.
Änderungen überwachen mit Node.js
Node.js ist ein stark eventgesteuertes System, weshalb auch unser CouchDB-
Wächter (Watcher) diesem Prinzip folgt. Unser Treiber überwacht des Chan-
Search WWH ::




Custom Search