|
|
@@ -1,5 +1,5 @@
|
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
|
-<!-- EN-Revision: 21826 -->
|
|
|
+<!-- EN-Revision: 21993 -->
|
|
|
<!-- Reviewed: no -->
|
|
|
<sect1 id="zend.feed.pubsubhubbub.introduction">
|
|
|
<title>Zend_Feed_Pubsubhubbub</title>
|
|
|
@@ -16,13 +16,13 @@
|
|
|
|
|
|
<para>
|
|
|
Pubsubhubbub ist ein offenes, einfaches Web-skalierbares Pubsub Protokoll. Der normale
|
|
|
- Anwendungsfall ist es Blogs (Publizist) zu erlauben Aktualisierungen von deren RSS oder
|
|
|
- Atom Feeds (Themen) an Abonnenten zu "senden". Diese Abonenten müssen dem RSS oder Atom
|
|
|
- Feed des Blogs über einen Hub abonniert haben. Das ist ein zentraler Server der
|
|
|
- benachrichtigt wird wenn es Aktualisierungen des Publizisten gibt und diese anschließend
|
|
|
- an alle Abonnenten verteilt. Jeder Feed kann bekanntgeben das er ein oder mehrere Hubs
|
|
|
- unterstützen indem ein Atom Namespaced Linkelement mit dem Rel Attribut "hub" verwendet
|
|
|
- wird.
|
|
|
+ Anwendungsfall ist es Blogs (Publizist) zu erlauben Aktualisierungen von deren
|
|
|
+ <acronym>RSS</acronym> oder Atom Feeds (Themen) an Abonnenten zu "senden". Diese
|
|
|
+ Abonenten müssen dem <acronym>RSS</acronym> oder Atom Feed des Blogs über einen Hub
|
|
|
+ abonniert haben. Das ist ein zentraler Server der benachrichtigt wird wenn es
|
|
|
+ Aktualisierungen des Publizisten gibt und diese anschließend an alle Abonnenten
|
|
|
+ verteilt. Jeder Feed kann bekanntgeben das er ein oder mehrere Hubs unterstützen indem
|
|
|
+ ein Atom Namespaced Linkelement mit dem Rel Attribut "hub" verwendet wird.
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
@@ -39,13 +39,13 @@
|
|
|
|
|
|
<para>
|
|
|
Das Protokoll existiert nicht isoliert. PubSub Systems gibt es schon seit einiger Zeit,
|
|
|
- wie auch das übliche Jabber Publish-Subscribe Protokoll, XEP-0060, oder das nicht so
|
|
|
- bekannte rssCloud (beschrieben 2001). Trotzdem haben diese keine keine breite Anwendung
|
|
|
- gefunden weil Sie entweder komplex sind, ein schlechtes Timing haben, oder nicht für
|
|
|
- Web Anwendungen verwendbar sind. Bei rssCloud, welches zuletzt als Antwort auf das
|
|
|
- Erscheinen von Pubsubhubbub revidiert wurde, wurde auch eine signifikante Steigerung
|
|
|
- gesehen obwohl es an einer formalen Spezifikation fehlt und es aktuell keine Atom 1.0
|
|
|
- Feeds unterstützt.
|
|
|
+ wie auch das übliche Jabber Publish-Subscribe Protokoll, <acronym>XEP-0060</acronym>,
|
|
|
+ oder das nicht so bekannte rssCloud (beschrieben 2001). Trotzdem haben diese keine keine
|
|
|
+ breite Anwendung gefunden weil Sie entweder komplex sind, ein schlechtes Timing haben,
|
|
|
+ oder nicht für Web Anwendungen verwendbar sind. Bei rssCloud, welches zuletzt als
|
|
|
+ Antwort auf das Erscheinen von Pubsubhubbub revidiert wurde, wurde auch eine
|
|
|
+ signifikante Steigerung gesehen obwohl es an einer formalen Spezifikation fehlt und es
|
|
|
+ aktuell keine Atom 1.0 Feeds unterstützt.
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
@@ -67,11 +67,12 @@
|
|
|
<para>
|
|
|
Ein Publizist ist verantwortlich für die Mitteilung aller Aktualisierungen seines Feeds
|
|
|
an alle unterstützten Hubs (es können viele unterstützt werden um Redundanz zu einem
|
|
|
- System hinzuzufügen), egal ob es sich um Atom oder RSS basierte handelt. Das wird getan
|
|
|
- indem die unterstützten Hub Server mit der URL des aktualisierten Feeds gepingt werden.
|
|
|
- In der Pubsubhubbub Terminologie wird jede aktualisierbare Ressource welche in der Lage
|
|
|
- ist abonniert zu werden als Thema bezeichnet. Sobald ein Ping empfangen wird, frägt der
|
|
|
- Hub den aktualisierten Feed ab, bearbeitet die aktualisierten Elemente, und leitet alle
|
|
|
+ System hinzuzufügen), egal ob es sich um Atom oder <acronym>RSS</acronym> basierte
|
|
|
+ handelt. Das wird getan indem die unterstützten Hub Server mit der
|
|
|
+ <acronym>URL</acronym> des aktualisierten Feeds gepingt werden. In der Pubsubhubbub
|
|
|
+ Terminologie wird jede aktualisierbare Ressource welche in der Lage ist abonniert zu
|
|
|
+ werden als Thema bezeichnet. Sobald ein Ping empfangen wird, frägt der Hub den
|
|
|
+ aktualisierten Feed ab, bearbeitet die aktualisierten Elemente, und leitet alle
|
|
|
Aktualisierungen an alle Abonnenten weiter die diesen Feed abonniert haben.
|
|
|
</para>
|
|
|
|
|
|
@@ -112,11 +113,11 @@
|
|
|
<acronym>API</acronym> sein. Damit diese Aktualisierungen zu den Abonnenten geschickt
|
|
|
werden können, muss der Publizist alle seine unterstützten Hubs darüber informieren das
|
|
|
eine Aktualisierung stattgefunden hat, indem eine einfache <acronym>HTTP</acronym> POST
|
|
|
- Anfrage verwendet wird, welche die URI oder das aktualisierte Thema enthält (z.B. den
|
|
|
- aktualisierten RSS oder Atom Feed). Der Hub bestätigt den Empfang der Benachrichtigung,
|
|
|
- holt den aktualisierten Feed, und leitet alle Aktualisierungen an alle Abonnenten weiter
|
|
|
- welche sich bei diesem Hub für Aktualisierungen für den relevanten Feed angemeldet
|
|
|
- haben.
|
|
|
+ Anfrage verwendet wird, welche die <acronym>URI</acronym> oder das aktualisierte Thema
|
|
|
+ enthält (z.B. den aktualisierten <acronym>RSS</acronym> oder Atom Feed). Der Hub
|
|
|
+ bestätigt den Empfang der Benachrichtigung, holt den aktualisierten Feed, und leitet
|
|
|
+ alle Aktualisierungen an alle Abonnenten weiter welche sich bei diesem Hub für
|
|
|
+ Aktualisierungen für den relevanten Feed angemeldet haben.
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
@@ -129,22 +130,22 @@
|
|
|
<para>
|
|
|
<classname>Zend_Feed_Pubsubhubbub_Publisher</classname> implementiert einen kompletten
|
|
|
Pubsubhubbub Publizisten. Sein Setup ist sehr einfach und hauptsächlich müssen bei Ihm
|
|
|
- nur die URI Endpunkte für alle Hubs konfiguriert werden welche bei Aktualisierungen
|
|
|
- benachrichtigt werden müssen, und die URIs aller Themen die in Benachrichtigungen
|
|
|
- einzubinden sind.
|
|
|
+ nur die <acronym>URI</acronym> Endpunkte für alle Hubs konfiguriert werden welche bei
|
|
|
+ Aktualisierungen benachrichtigt werden müssen, und die <acronym>URI</acronym>s aller
|
|
|
+ Themen die in Benachrichtigungen einzubinden sind.
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
Das folgende Beispiel zeigt einen Publizisten der eine Sammlung von Hubs über
|
|
|
- Aktualisierungen zu einem Paar von lokalen RSS und Atom Feeds benachrichtigt. Die Klasse
|
|
|
- enthält eine Anzahl von Fehlern welche die URLs des Hubs enthalten, damit
|
|
|
- Benachrichtigungen stäter wieder ausgeführt oder protokolliert werden können wenn
|
|
|
- irgendeine Benachrichtigung fehlschlägt. Jedes resultierende Fehlerarray enthält auch
|
|
|
- einen "response" Schlüssel welche das betreffende <acronym>HTTP</acronym> Antwortobjekt
|
|
|
- enthält. In Falle irgendeines Fehlers wird empfohlen die Operation für den
|
|
|
- fehlgeschlagenen Hub Endpunkt in Zukunft zumindest noch einmal zu versuchen. Das kann
|
|
|
- die Verwendung einer geplanten Aufgabe für diesen Zweck oder einer Job Queue wenn solche
|
|
|
- extra Schritte optional sind.
|
|
|
+ Aktualisierungen zu einem Paar von lokalen <acronym>RSS</acronym> und Atom Feeds
|
|
|
+ benachrichtigt. Die Klasse enthält eine Anzahl von Fehlern welche die
|
|
|
+ <acronym>URL</acronym>s des Hubs enthalten, damit Benachrichtigungen stäter wieder
|
|
|
+ ausgeführt oder protokolliert werden können wenn irgendeine Benachrichtigung
|
|
|
+ fehlschlägt. Jedes resultierende Fehlerarray enthält auch einen "response" Schlüssel
|
|
|
+ welche das betreffende <acronym>HTTP</acronym> Antwortobjekt enthält. In Falle
|
|
|
+ irgendeines Fehlers wird empfohlen die Operation für den fehlgeschlagenen Hub Endpunkt
|
|
|
+ in Zukunft zumindest noch einmal zu versuchen. Das kann die Verwendung einer geplanten
|
|
|
+ Aufgabe für diesen Zweck oder einer Job Queue wenn solche extra Schritte optional sind.
|
|
|
</para>
|
|
|
|
|
|
<programlisting language="php"><![CDATA[
|
|
|
@@ -181,9 +182,10 @@ if (!$publisher->isSuccess()) {
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
- Man kann das Setzen der Hub URIs auch überspringen und jeden in Folge benachrichtigen
|
|
|
- indem die Methode <methodname>notifyHub()</methodname> verwendet wird welche die URI
|
|
|
- eines Hub Endpunkts als sein einziges Argument akzeptiert.
|
|
|
+ Man kann das Setzen der Hub <acronym>URI</acronym>s auch überspringen und jeden in Folge
|
|
|
+ benachrichtigen indem die Methode <methodname>notifyHub()</methodname> verwendet wird
|
|
|
+ welche die <acronym>URI</acronym> eines Hub Endpunkts als sein einziges Argument
|
|
|
+ akzeptiert.
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
@@ -204,17 +206,18 @@ if (!$publisher->isSuccess()) {
|
|
|
|
|
|
<para>
|
|
|
In Pubsubhubbub ist der Abonnent ein Teilnehmer welcher Aktualisierungen zu irgendeinem
|
|
|
- Thema (einem RSS oder Atom Feed) empfangen will. Er kann das bewerkstelligen indem er
|
|
|
- einen oder mehrere Hubs abonniert welche von diesem Thema beworben werden, normalerweise
|
|
|
- als ein Set von ein oder mehreren Atom 1.0 Links mit dem Rel Attribut "hub". Ab diesem
|
|
|
- Punkt sendet der Hub, wenn er eine Benachrichtigung über eine Aktualisierung des
|
|
|
- Publizisten empfängt, einen Atom oder RSS Feed, welcher alle Aktualisierungen enthält,
|
|
|
- zur Callback URL des Abonnenten. Über diesen Weg muss der Abonnent niemals den
|
|
|
- originalen Feed besuchen (obwohl es trotzdem empfohlen wird um sicherzustellen das
|
|
|
- Aktualisierungen empfangen werden wenn ein Hub jemals offline geht). Alle Anfragen für
|
|
|
- Abos müssen die URI des Themas enthalten welches abonniert werden soll, und eine
|
|
|
- Callback URL welche der Hub verwendet um das Abo zu bestätigen und um Aktualisierungen
|
|
|
- weiterzuleiten.
|
|
|
+ Thema (einem <acronym>RSS</acronym> oder Atom Feed) empfangen will. Er kann dass
|
|
|
+ bewerkstelligen indem er einen oder mehrere Hubs abonniert welche von diesem Thema
|
|
|
+ beworben werden, normalerweise als ein Set von ein oder mehreren Atom 1.0 Links mit dem
|
|
|
+ Rel Attribut "hub". Ab diesem Punkt sendet der Hub, wenn er eine Benachrichtigung über
|
|
|
+ eine Aktualisierung des Publizisten empfängt, einen Atom oder <acronym>RSS</acronym>
|
|
|
+ Feed, welcher alle Aktualisierungen enthält, zur Callback <acronym>URL</acronym> des
|
|
|
+ Abonnenten. Über diesen Weg muss der Abonnent niemals den originalen Feed besuchen
|
|
|
+ (obwohl es trotzdem empfohlen wird um sicherzustellen das Aktualisierungen empfangen
|
|
|
+ werden wenn ein Hub jemals offline geht). Alle Anfragen für Abos müssen die
|
|
|
+ <acronym>URI</acronym> des Themas enthalten welches abonniert werden soll, und eine
|
|
|
+ Callback <acronym>URL</acronym> welche der Hub verwendet um das Abo zu bestätigen und um
|
|
|
+ Aktualisierungen weiterzuleiten.
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
@@ -226,12 +229,13 @@ if (!$publisher->isSuccess()) {
|
|
|
|
|
|
<para>
|
|
|
Die zweite Rolle ist es Aktualisierungen zu akzeptieren welche vom Hub zur Callback
|
|
|
- URL des Abonnenten gesendet werden, wenn z.B. die URI des Abonnenten zugeordnet wurde
|
|
|
- um Aktualisierungen zu behandeln. Die Callback URL behandelt auch Events wenn der Hub
|
|
|
- den Abonnenten kontaktiert um alle Abos zu das Löschen von Abos zu bestätigen. Dies wird
|
|
|
+ <acronym>URL</acronym> des Abonnenten gesendet werden, wenn z.B. die
|
|
|
+ <acronym>URI</acronym> des Abonnenten zugeordnet wurde um Aktualisierungen zu
|
|
|
+ behandeln. Die Callback <acronym>URL</acronym> behandelt auch Events wenn der Hub den
|
|
|
+ Abonnenten kontaktiert um alle Abos zu das Löschen von Abos zu bestätigen. Dies wird
|
|
|
behandelt indem eine Instanz von
|
|
|
<classname>Zend_Feed_Pubsubhubbub_Subscriber_Callback</classname> verwendet wird wenn
|
|
|
- auf die Callback URL zugegriffen wird.
|
|
|
+ auf die Callback <acronym>URL</acronym> zugegriffen wird.
|
|
|
</para>
|
|
|
|
|
|
<important>
|
|
|
@@ -239,12 +243,12 @@ if (!$publisher->isSuccess()) {
|
|
|
<classname>Zend_Feed_Pubsubhubbub_Subscriber</classname> implementiert die
|
|
|
Pubsubhubbub Spezifikation 0.2. Da dies eine Version der Spezifikation ist
|
|
|
implementieren Sie aktuell nicht alle Hubs. Die neue Spezifikation erlaubt der
|
|
|
- Callback URL einen Abfragestring einzubinden welcher von dieser Klasse verwendet,
|
|
|
- aber nicht von allen Hubs unterstützt wird. Im Interesse einer maximalen
|
|
|
- Kompatibilität wird deshalb empfohlen die Komponente des Abfragestrings der
|
|
|
- Callback URI des Abonnenten als Pfadelement darzustellen, z.B. als Parameter in der
|
|
|
- Route erkannt und mit der Callback URI assoziiert und vom Router der Anwendung
|
|
|
- verwendet.
|
|
|
+ Callback <acronym>URL</acronym> einen Abfragestring einzubinden welcher von dieser
|
|
|
+ Klasse verwendet, aber nicht von allen Hubs unterstützt wird. Im Interesse einer
|
|
|
+ maximalen Kompatibilität wird deshalb empfohlen die Komponente des Abfragestrings
|
|
|
+ der Callback <acronym>URI</acronym> des Abonnenten als Pfadelement darzustellen,
|
|
|
+ z.B. als Parameter in der Route erkannt und mit der Callback <acronym>URI</acronym>
|
|
|
+ assoziiert und vom Router der Anwendung verwendet.
|
|
|
</para>
|
|
|
</important>
|
|
|
|
|
|
@@ -263,12 +267,12 @@ if (!$publisher->isSuccess()) {
|
|
|
|
|
|
<para>
|
|
|
Jedes Abo (oder Löschen eines Abos) benötigt die betreffende Information bevor
|
|
|
- es bearbeitet werden kann, z.B. die URI des Themas (Atom oder RSS Feed) das für
|
|
|
- Aktualisierungen abonniert werden soll, und die URI des Endpunkts für den Hub
|
|
|
- welcher die Anmeldung auf das Abo bearbeitet und die Aktualisierungen weiterleitet.
|
|
|
- Die Lebenszeit eines Abos kann durch den Hub ermittelt werden, aber die meisten
|
|
|
- Hubs sollten die automatische Auffrischung des Abos unterstützen indem der
|
|
|
- Abonnenten geprüft wird. Das wird von
|
|
|
+ es bearbeitet werden kann, z.B. die <acronym>URI</acronym> des Themas (Atom oder
|
|
|
+ <acronym>RSS</acronym> Feed) das für Aktualisierungen abonniert werden soll, und die
|
|
|
+ <acronym>URI</acronym> des Endpunkts für den Hub welcher die Anmeldung auf das Abo
|
|
|
+ bearbeitet und die Aktualisierungen weiterleitet. Die Lebenszeit eines Abos kann
|
|
|
+ durch den Hub ermittelt werden, aber die meisten Hubs sollten die automatische
|
|
|
+ Auffrischung des Abos unterstützen indem der Abonnenten geprüft wird. Das wird von
|
|
|
<classname>Zend_Feed_Pubsubhubbub_Subscriber_Callback</classname> unterstützt und
|
|
|
benötigt keine weitere Arbeit. Es wird trotzdem empfohlen dass man die vom Hub
|
|
|
kommende Lebenszeit des Abos (time to live, ttl) verwendet um die Erstellung neuer
|
|
|
@@ -360,19 +364,20 @@ CREATE TABLE IF NOT EXISTS `subscription` (
|
|
|
|
|
|
<entry>
|
|
|
<para>
|
|
|
- Die URI welche von einem Hub verwendet wird um den Abonnenten
|
|
|
- zu kontaktieren und entweder eine Bestätigung für eine Anfrage
|
|
|
- oder das Löschen eines Abos abzufragen oder Aktualisierungen für
|
|
|
- abonnierte Feeds zu senden. Der angehängte Abfragestring enthält
|
|
|
- einen eigenen Parameter (demzufolge der Zweck von xhub). Es ist
|
|
|
- ein Parameter für einen Abfragestring welcher vom Hub
|
|
|
- aufbewahrt um mit allen Anfragen des Abonnenten wieder versendet
|
|
|
- wird. Sein Zweck ist es dem Abonnenten zu erlauben sich zu
|
|
|
- identifizieren und die Abos zu betrachten welche mit einer
|
|
|
- beliebigen Hubanfrage in einem Backend-Speichermedium assoziiert
|
|
|
- sind. Das ist kein Standardparameter welcher von dieser
|
|
|
- Komponente verwendet wird statt einen Aboschlüssel im URI Pfad
|
|
|
- zu kodieren, was in einer Zend Framework Anwendung viel
|
|
|
+ Die <acronym>URI</acronym> welche von einem Hub verwendet wird
|
|
|
+ um den Abonnenten zu kontaktieren und entweder eine Bestätigung
|
|
|
+ für eine Anfrage oder das Löschen eines Abos abzufragen oder
|
|
|
+ Aktualisierungen für abonnierte Feeds zu senden. Der angehängte
|
|
|
+ Abfragestring enthält einen eigenen Parameter (demzufolge der
|
|
|
+ Zweck von xhub). Es ist ein Parameter für einen Abfragestring
|
|
|
+ welcher vom Hub aufbewahrt um mit allen Anfragen des Abonnenten
|
|
|
+ wieder versendet wird. Sein Zweck ist es dem Abonnenten zu
|
|
|
+ erlauben sich zu identifizieren und die Abos zu betrachten
|
|
|
+ welche mit einer beliebigen Hubanfrage in einem
|
|
|
+ Backend-Speichermedium assoziiert sind. Das ist kein
|
|
|
+ Standardparameter welcher von dieser Komponente verwendet wird
|
|
|
+ statt einen Aboschlüssel im <acronym>URI</acronym> Pfad zu
|
|
|
+ kodieren, was in einer Zend Framework Anwendung viel
|
|
|
komplizierter zu implementieren wäre.
|
|
|
</para>
|
|
|
|
|
|
@@ -399,14 +404,14 @@ CREATE TABLE IF NOT EXISTS `subscription` (
|
|
|
<entry>
|
|
|
<para>
|
|
|
Die Anzahl an Sekunden für welche der Abonnenten will dass
|
|
|
- ein neues Abo gültig bleibt (z.B. ein TTL). Hubs können Ihre
|
|
|
- eigene maximale Abodauer erzwingen. Alle Abos sollten erneuert
|
|
|
- werden indem einfach erneut abonniert wird bevor die Abodauer
|
|
|
- endet um die Kontinuierlichkeit der Aktualisierungen zu
|
|
|
- gewährleisten. Hubs sollten zusätzlich versuchen Abos
|
|
|
- automatisch zu aktualisieren bevor diese auslaufen indem die
|
|
|
- Abonnenten kontaktiert werden (dies wird automatisch von der
|
|
|
- Callback Klasse behandelt).
|
|
|
+ ein neues Abo gültig bleibt (z.B. ein <acronym>TTL</acronym>).
|
|
|
+ Hubs können Ihre eigene maximale Abodauer erzwingen. Alle Abos
|
|
|
+ sollten erneuert werden indem einfach erneut abonniert wird
|
|
|
+ bevor die Abodauer endet um die Kontinuierlichkeit der
|
|
|
+ Aktualisierungen zu gewährleisten. Hubs sollten zusätzlich
|
|
|
+ versuchen Abos automatisch zu aktualisieren bevor diese
|
|
|
+ auslaufen indem die Abonnenten kontaktiert werden (dies wird
|
|
|
+ automatisch von der Callback Klasse behandelt).
|
|
|
</para>
|
|
|
</entry>
|
|
|
</row>
|
|
|
@@ -430,8 +435,9 @@ CREATE TABLE IF NOT EXISTS `subscription` (
|
|
|
|
|
|
<entry>
|
|
|
<para>
|
|
|
- Die URI des Themas (z.B. Atom oder RSS Feed) welche der Abonnent
|
|
|
- zu abonnieren wünscht damit er Aktualisierungen bekommt.
|
|
|
+ Die <acronym>URI</acronym> des Themas (z.B. Atom oder
|
|
|
+ <acronym>RSS</acronym> Feed) welche der Abonnent zu abonnieren
|
|
|
+ wünscht damit er Aktualisierungen bekommt.
|
|
|
</para>
|
|
|
</entry>
|
|
|
</row>
|
|
|
@@ -538,11 +544,12 @@ CREATE TABLE IF NOT EXISTS `subscription` (
|
|
|
<para>
|
|
|
Wann auch immer eine Aboanfrage oder eine Anfrage auf Löschen eines Abos gemacht
|
|
|
wird muss der Hub die Anfrage prüfen indem er eine neue Prüfanfrage an die Callback
|
|
|
- URL weiterleitet welche in den Abo/Abo löschen Parametern gesetzt ist. Um diese Hub
|
|
|
- Anfragen zu behandeln, welche alle zukünftigen Kommunikationen enthalten können wie
|
|
|
- z.B. Themenaktualisierungen (Feed), sollte die Callback URL die Ausführung einer
|
|
|
- Instanz von <classname>Zend_Pubsubhubbub_Subscriber_Callback</classname> auslösen um
|
|
|
- die Anfrage zu behandeln.
|
|
|
+ <acronym>URL</acronym> weiterleitet welche in den Abo or Abo löschen Parametern
|
|
|
+ gesetzt ist. Um diese Hub Anfragen zu behandeln, welche alle zukünftigen
|
|
|
+ Kommunikationen enthalten können wie z.B. Themenaktualisierungen (Feed), sollte die
|
|
|
+ Callback <acronym>URL</acronym> die Ausführung einer Instanz von
|
|
|
+ <classname>Zend_Pubsubhubbub_Subscriber_Callback</classname> auslösen um die Anfrage
|
|
|
+ zu behandeln.
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
@@ -618,16 +625,18 @@ if ($callback->hasFeedUpdate()) {
|
|
|
<classname>Zend_Feed_Pubsubhubbub_Subscriber_Callback</classname> den kombinierten
|
|
|
Schlüssel welche mit jedem Abo assoziiert ist vom Hub über eine oder zwei Methoden.
|
|
|
Die technisch bevorzugte Methode ist das Hinzufügen dieses Schlüssels zur Callback
|
|
|
- URL welcher für den Hub in allen zukünftigen Anfragen tätig ist indem ein
|
|
|
- Stringparameter in der Abfrage mit dem Schlüssel "xhub.subscription" verwendet wird.
|
|
|
- Trotzdem, aus historischen Gründen, weil es in Pubsubhubbub 0.1 nicht unterstützt
|
|
|
- wurde (es wurde kürzlich nur in 0.2 hinzugefügt) ist es stärkstens empfohlen das
|
|
|
- kompatibelste zu verwenden und den Schlüssel der Callback URL hinzuzugefügen indem
|
|
|
- er den URL Pfaden angehängt wird.
|
|
|
+ <acronym>URL</acronym> welcher für den Hub in allen zukünftigen Anfragen tätig ist
|
|
|
+ indem ein Stringparameter in der Abfrage mit dem Schlüssel "xhub.subscription"
|
|
|
+ verwendet wird. Trotzdem, aus historischen Gründen, weil es in Pubsubhubbub 0.1
|
|
|
+ nicht unterstützt wurde (es wurde kürzlich nur in 0.2 hinzugefügt) ist es stärkstens
|
|
|
+ empfohlen das kompatibelste zu verwenden und den Schlüssel der Callback
|
|
|
+ <acronym>URL</acronym> hinzuzugefügen indem er den <acronym>URL</acronym> Pfaden
|
|
|
+ angehängt wird.
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
- Deshalb würde die URL http://www.example.com/callback?xhub.subscription=key zu
|
|
|
+ Deshalb würde die <acronym>URL</acronym>
|
|
|
+ http://www.example.com/callback?xhub.subscription=key zu
|
|
|
http://www.example.com/callback/key werden.
|
|
|
</para>
|
|
|
|
|
|
@@ -686,14 +695,15 @@ class CallbackController extends Zend_Controller_Action
|
|
|
}
|
|
|
]]></programlisting>
|
|
|
|
|
|
- <para>
|
|
|
- Aktuell kann das Hinzufügen der Route zu einem Parameter welcher den Schlüssel der an
|
|
|
- den Pfad angehängt wird mappen würde durchgeführt werden indem eine Routenkonfiguration
|
|
|
- wie im kommenden <acronym>INI</acronym> formatierten Beispiel für die Verwendung mit dem
|
|
|
- Bootstrapping von <classname>Zend_Application</classname> verwendet wird.
|
|
|
- </para>
|
|
|
+ <para>
|
|
|
+ Aktuell kann das Hinzufügen der Route zu einem Parameter welcher den Schlüssel der
|
|
|
+ an den Pfad angehängt wird mappen würde durchgeführt werden indem eine
|
|
|
+ Routenkonfiguration wie im kommenden <acronym>INI</acronym> formatierten Beispiel
|
|
|
+ für die Verwendung mit dem Bootstrapping von <classname>Zend_Application</classname>
|
|
|
+ verwendet wird.
|
|
|
+ </para>
|
|
|
|
|
|
- <programlisting language="dosini"><![CDATA[
|
|
|
+ <programlisting language="dosini"><![CDATA[
|
|
|
; Callback Route fürs Hinzufügen einer PuSH Aboschlüssel Abfrage zu aktivieren
|
|
|
resources.router.routes.callback.route = "callback/:subkey"
|
|
|
resources.router.routes.callback.defaults.module = "default"
|