update link in the docs to dfrn specs + h3 headings (instead of h2 headings) in message_flow doc
This commit is contained in:
parent
14c84b92cc
commit
76ca015497
2 changed files with 17 additions and 17 deletions
|
@ -4,7 +4,7 @@ Friendica Message Flow
|
||||||
This page documents some of the details of how messages get from one person to another in the Friendica network.
|
This page documents some of the details of how messages get from one person to another in the Friendica network.
|
||||||
There are multiple paths, using multiple protocols and message formats.
|
There are multiple paths, using multiple protocols and message formats.
|
||||||
|
|
||||||
Those attempting to understand these message flows should become familiar with (at the minimum) the [DFRN protocol document](http://dfrn.org/dfrn.pdf) and the message passing elements of the OStatus stack (salmon and Pubsubhubbub).
|
Those attempting to understand these message flows should become familiar with (at the minimum) the [DFRN protocol document](https://github.com/friendica/friendica/blob/master/spec/dfrn2.pdf) and the message passing elements of the OStatus stack (salmon and Pubsubhubbub).
|
||||||
|
|
||||||
Most message passing involves the file include/items.php, which has functions for several feed-related import/export activities.
|
Most message passing involves the file include/items.php, which has functions for several feed-related import/export activities.
|
||||||
|
|
||||||
|
@ -21,8 +21,8 @@ Push (pubsubhubbub) feeds arrive via mod/pubsub.php
|
||||||
|
|
||||||
DFRN-poll feed imports arrive via include/poller.php as a scheduled task, this implements the local side of the DFRN-poll protocol.
|
DFRN-poll feed imports arrive via include/poller.php as a scheduled task, this implements the local side of the DFRN-poll protocol.
|
||||||
|
|
||||||
Scenario #1. Bob posts a public status message
|
### Scenario #1. Bob posts a public status message
|
||||||
---
|
|
||||||
This is a public message with no conversation members so no private transport is used.
|
This is a public message with no conversation members so no private transport is used.
|
||||||
There are two paths it can take - as a bbcode path to DFRN clients, and converted to HTML with the server's PuSH (pubsubhubbub) hubs notified.
|
There are two paths it can take - as a bbcode path to DFRN clients, and converted to HTML with the server's PuSH (pubsubhubbub) hubs notified.
|
||||||
When a PuSH hub is operational, dfrn-poll clients prefer to receive their information through the PuSH channel.
|
When a PuSH hub is operational, dfrn-poll clients prefer to receive their information through the PuSH channel.
|
||||||
|
@ -30,31 +30,31 @@ They will fall back on a daily poll in case the hub has delivery issues (this is
|
||||||
If there is no specified hub or hubs, DFRN clients will poll at a configurable (per-contact) rate at up to 5-minute intervals.
|
If there is no specified hub or hubs, DFRN clients will poll at a configurable (per-contact) rate at up to 5-minute intervals.
|
||||||
Feeds retrieved via dfrn-poll are bbcode and may also contain private conversations which the poller has permissions to see.
|
Feeds retrieved via dfrn-poll are bbcode and may also contain private conversations which the poller has permissions to see.
|
||||||
|
|
||||||
Scenario #2. Jack replies to Bob's public message. Jack is on the Friendica/DFRN network.
|
### Scenario #2. Jack replies to Bob's public message. Jack is on the Friendica/DFRN network.
|
||||||
---
|
|
||||||
Jack uses dfrn-notify to send a direct reply to Bob.
|
Jack uses dfrn-notify to send a direct reply to Bob.
|
||||||
Bob then creates a feed of the conversation and sends it to everybody involved in the conversation using dfrn-notify.
|
Bob then creates a feed of the conversation and sends it to everybody involved in the conversation using dfrn-notify.
|
||||||
PuSH hubs are notified that new content is available.
|
PuSH hubs are notified that new content is available.
|
||||||
The hub or hubs will then retrieve the latest feed and transmit it to all hub subscribers (which may be on different networks).
|
The hub or hubs will then retrieve the latest feed and transmit it to all hub subscribers (which may be on different networks).
|
||||||
|
|
||||||
Scenario #3. Mary replies to Bob's public message. Mary is on the Friendica/DFRN network.
|
### Scenario #3. Mary replies to Bob's public message. Mary is on the Friendica/DFRN network.
|
||||||
---
|
|
||||||
Mary uses dfrn-notify to send a direct reply to Bob.
|
Mary uses dfrn-notify to send a direct reply to Bob.
|
||||||
Bob then creates a feed of the conversation and sends it to everybody involved in the conversation (excluding himself, the conversation is now sent to both Jack and Mary).
|
Bob then creates a feed of the conversation and sends it to everybody involved in the conversation (excluding himself, the conversation is now sent to both Jack and Mary).
|
||||||
Messages are sent using dfrn-notify.
|
Messages are sent using dfrn-notify.
|
||||||
Push hubs are also notified that new content is available.
|
Push hubs are also notified that new content is available.
|
||||||
The hub or hubs will then retrieve the latest feed and transmit it to all hub subscribers (which may be on different networks).
|
The hub or hubs will then retrieve the latest feed and transmit it to all hub subscribers (which may be on different networks).
|
||||||
|
|
||||||
Scenario #4. William replies to Bob's public message. William is on the OStatus network.
|
### Scenario #4. William replies to Bob's public message. William is on the OStatus network.
|
||||||
---
|
|
||||||
William uses salmon to notify Bob of the reply.
|
William uses salmon to notify Bob of the reply.
|
||||||
Content is html embedded in salmon magic envelope.
|
Content is html embedded in salmon magic envelope.
|
||||||
Bob then creates a feed of the conversation and sends it to all Friendica participants involved in the conversation using dfrn-notify (excluding himself, the conversation is sent to both Jack and Mary).
|
Bob then creates a feed of the conversation and sends it to all Friendica participants involved in the conversation using dfrn-notify (excluding himself, the conversation is sent to both Jack and Mary).
|
||||||
Push hubs are notified that new content is available.
|
Push hubs are notified that new content is available.
|
||||||
The hub or hubs will then retrieve the latest feed and transmit it to all hub subscribers (which may be on different networks).
|
The hub or hubs will then retrieve the latest feed and transmit it to all hub subscribers (which may be on different networks).
|
||||||
|
|
||||||
Scenario #5. Bob posts a private message to Mary and Jack.
|
### Scenario #5. Bob posts a private message to Mary and Jack.
|
||||||
---
|
|
||||||
Message is delivered immediately to Mary and Jack using dfrn_notify.
|
Message is delivered immediately to Mary and Jack using dfrn_notify.
|
||||||
Public hubs are not notified.
|
Public hubs are not notified.
|
||||||
Requeueing is attempted in case of timeout.
|
Requeueing is attempted in case of timeout.
|
||||||
|
|
|
@ -6,7 +6,7 @@ Friendica Nachrichtenfluss
|
||||||
Diese Seite soll einige Infos darüber dokumentieren, wie Nachrichten innerhalb von Friendica von einer Person zur anderen übertragen werden.
|
Diese Seite soll einige Infos darüber dokumentieren, wie Nachrichten innerhalb von Friendica von einer Person zur anderen übertragen werden.
|
||||||
Es gibt verschiedene Pfade, die verschiedene Protokolle und Nachrichtenformate nutzen.
|
Es gibt verschiedene Pfade, die verschiedene Protokolle und Nachrichtenformate nutzen.
|
||||||
|
|
||||||
Diejenigen, die den Nachrichtenfluss genauer verstehen wollen, sollten sich mindestens mit dem DFRN-Protokoll (http://dfrn.org/dfrn.pdf) und den Elementen zur Nachrichtenverarbeitung des OStatus Stack informieren (salmon und Pubsubhubbub).
|
Diejenigen, die den Nachrichtenfluss genauer verstehen wollen, sollten sich mindestens mit dem DFRN-Protokoll ([Dokument mit den DFRN Spezifikationen](https://github.com/friendica/friendica/blob/master/spec/dfrn2.pdf)) und den Elementen zur Nachrichtenverarbeitung des OStatus Stack informieren (salmon und Pubsubhubbub).
|
||||||
|
|
||||||
Der Großteil der Nachrichtenverarbeitung nutzt die Datei include/items.php, welche Funktionen für verschiedene Feed-bezogene Import-/Exportaktivitäten liefert.
|
Der Großteil der Nachrichtenverarbeitung nutzt die Datei include/items.php, welche Funktionen für verschiedene Feed-bezogene Import-/Exportaktivitäten liefert.
|
||||||
|
|
||||||
|
@ -24,7 +24,7 @@ PuSh-Feeds (pubsubhubbub) kommen via mod/pubsub.php an.
|
||||||
DFRN-poll Feed-Imports kommen via include/poller.php als geplanter Task an, das implementiert die lokale Bearbeitung (local side) des DFRN-Protokolls.
|
DFRN-poll Feed-Imports kommen via include/poller.php als geplanter Task an, das implementiert die lokale Bearbeitung (local side) des DFRN-Protokolls.
|
||||||
|
|
||||||
|
|
||||||
Szenario #1. Bob schreibt eine öffentliche Statusnachricht
|
### Szenario #1. Bob schreibt eine öffentliche Statusnachricht
|
||||||
|
|
||||||
Dies ist eine öffentliche Nachricht ohne begrenzte Nutzerfreigabe, so dass keine private Übertragung notwendig ist.
|
Dies ist eine öffentliche Nachricht ohne begrenzte Nutzerfreigabe, so dass keine private Übertragung notwendig ist.
|
||||||
Es gibt zwei Wege, die genutzt werden können - als bbcode an DFRN-Clients oder als durch den Server konvertierten HTML-Code (mit PuSH; pubsubhubbub).
|
Es gibt zwei Wege, die genutzt werden können - als bbcode an DFRN-Clients oder als durch den Server konvertierten HTML-Code (mit PuSH; pubsubhubbub).
|
||||||
|
@ -33,13 +33,13 @@ Sie fallen zurück auf eine tägliche Abfrage, wenn der Hub Übertragungsschwier
|
||||||
Wenn kein spezifizierter Hub oder Hubs ausgewählt sind, werden DFRN-Clients in einer pro Kontakt konfigurierbaren Rate mit bis zu 5-Minuten-Intervallen abfragen.
|
Wenn kein spezifizierter Hub oder Hubs ausgewählt sind, werden DFRN-Clients in einer pro Kontakt konfigurierbaren Rate mit bis zu 5-Minuten-Intervallen abfragen.
|
||||||
Feeds, die via DFRN-Poll abgerufen werden, sind bbcode und können auch private Unterhaltungen enthalten, die vom Poller auf ihre Zugriffsrechte hin geprüft werden.
|
Feeds, die via DFRN-Poll abgerufen werden, sind bbcode und können auch private Unterhaltungen enthalten, die vom Poller auf ihre Zugriffsrechte hin geprüft werden.
|
||||||
|
|
||||||
Szenario #2. Jack antwortet auf Bobs öffentliche Nachricht. Jack ist im Friendica/DFRN-Netzwerk.
|
### Szenario #2. Jack antwortet auf Bobs öffentliche Nachricht. Jack ist im Friendica/DFRN-Netzwerk.
|
||||||
|
|
||||||
Jack nutzt dfrn-notify, um eine direkte Antwort an Bob zu schicken.
|
Jack nutzt dfrn-notify, um eine direkte Antwort an Bob zu schicken.
|
||||||
Bob erstellt dann einen Feed der Unterhaltung und sendet diesen an jeden, der an der Unterhaltung beteiligt ist und dfrn-notify nutzt.
|
Bob erstellt dann einen Feed der Unterhaltung und sendet diesen an jeden, der an der Unterhaltung beteiligt ist und dfrn-notify nutzt.
|
||||||
Die PuSH-Hubs werden darüber informiert, dass neuer Inhalt verfügbar ist. Der/die Hub/s erhalten dann die neuesten Feeds und übertragen diese an alle Hub-Teilnehmer (die auch zu verschiedenen Netzwerken gehören können).
|
Die PuSH-Hubs werden darüber informiert, dass neuer Inhalt verfügbar ist. Der/die Hub/s erhalten dann die neuesten Feeds und übertragen diese an alle Hub-Teilnehmer (die auch zu verschiedenen Netzwerken gehören können).
|
||||||
|
|
||||||
Szenario #3. Mary antwortet auf Bobs öffentliche Nachricht. Mary ist im Friendica/DFRN-Netzwerk.
|
### Szenario #3. Mary antwortet auf Bobs öffentliche Nachricht. Mary ist im Friendica/DFRN-Netzwerk.
|
||||||
|
|
||||||
Mary nutzt dfrn-notify, um eine direkte Antwort an Bob zu schicken.
|
Mary nutzt dfrn-notify, um eine direkte Antwort an Bob zu schicken.
|
||||||
Bob erstellt dann einen Feed der Unterhaltung und sendet diesen an jeden, der an der Unterhaltung beteiligt ist (mit Ausnahme von Bob selbst; die Unterhaltung wird nun an Jack und Mary geschickt).
|
Bob erstellt dann einen Feed der Unterhaltung und sendet diesen an jeden, der an der Unterhaltung beteiligt ist (mit Ausnahme von Bob selbst; die Unterhaltung wird nun an Jack und Mary geschickt).
|
||||||
|
@ -47,14 +47,14 @@ Die Nachrichten werden mit dfrn-notify übertragen.
|
||||||
PuSH-Hubs werden darüber informiert, dass neuer Inhalt verfügbar ist.
|
PuSH-Hubs werden darüber informiert, dass neuer Inhalt verfügbar ist.
|
||||||
Der/die Hub/s erhalten dann die neuesten Feeds und übertragen sie an alle Hub-Teilnehmer (die auch zu verschiedenen Netzwerken gehören können).
|
Der/die Hub/s erhalten dann die neuesten Feeds und übertragen sie an alle Hub-Teilnehmer (die auch zu verschiedenen Netzwerken gehören können).
|
||||||
|
|
||||||
Szenario #4. William antwortet auf Bobs öffentliche Nachricht. William ist in einem OStatus-Netzwerk.
|
### Szenario #4. William antwortet auf Bobs öffentliche Nachricht. William ist in einem OStatus-Netzwerk.
|
||||||
|
|
||||||
William nutzt salmon, um Bob über seine Antwort zu benachrichtigen.
|
William nutzt salmon, um Bob über seine Antwort zu benachrichtigen.
|
||||||
Der Inhalt ist HTML-Code, der in das Salmon Magic Envelope eingebettet ist.
|
Der Inhalt ist HTML-Code, der in das Salmon Magic Envelope eingebettet ist.
|
||||||
Bob erstellt dann einen Feed der Unterhaltung und sendet es an alle Friendica-Nutzer, die an der Unterhaltung beteiligt sind und dfrn-notify nutzen (mit Ausnahme von William selbst; die Unterhaltung wird an Jack und Mary weitergeleitet).
|
Bob erstellt dann einen Feed der Unterhaltung und sendet es an alle Friendica-Nutzer, die an der Unterhaltung beteiligt sind und dfrn-notify nutzen (mit Ausnahme von William selbst; die Unterhaltung wird an Jack und Mary weitergeleitet).
|
||||||
PuSH-Hubs werden darüber informiert, dass neuer Inhalt verfügbar ist. Der/die Hub/s erhalten dann die neuesten Feeds und übertragen sie an alle Hub-Teilnehmer (die auch zu verschiedenen Netzwerken gehören können).
|
PuSH-Hubs werden darüber informiert, dass neuer Inhalt verfügbar ist. Der/die Hub/s erhalten dann die neuesten Feeds und übertragen sie an alle Hub-Teilnehmer (die auch zu verschiedenen Netzwerken gehören können).
|
||||||
|
|
||||||
Szenario #5. Bob schreibt eine private Nachricht an Mary und Jack.
|
### Szenario #5. Bob schreibt eine private Nachricht an Mary und Jack.
|
||||||
|
|
||||||
Die Nachricht wird sofort an Mary und Jack mit Hilfe von dfrn_notify geschickt.
|
Die Nachricht wird sofort an Mary und Jack mit Hilfe von dfrn_notify geschickt.
|
||||||
Öffentliche Hubs werden nicht benachrichtigt.
|
Öffentliche Hubs werden nicht benachrichtigt.
|
||||||
|
|
Loading…
Reference in a new issue