Merge pull request #2977 from rabuzarus/20161128_-_help_page_polishing
Add protocol docu to the help docs
This commit is contained in:
commit
efb2df41ba
15 changed files with 507 additions and 46 deletions
|
@ -7,11 +7,11 @@ Friendica Documentation and Resources
|
|||
* [Account Basics](help/Account-Basics)
|
||||
* [New User Quick Start](help/Quick-Start-guide)
|
||||
* [Creating posts](help/Text_editor)
|
||||
* [BBCode tag reference](help/BBCode)
|
||||
* [BBCode tag reference](help/BBCode)
|
||||
* [Comment, sort and delete posts](help/Text_comment)
|
||||
* [Profiles](help/Profiles)
|
||||
* [Accesskey reference](help/Accesskeys)
|
||||
* [Events](help/events)
|
||||
* [Events](help/events)
|
||||
* You and other users
|
||||
* [Connectors](help/Connectors)
|
||||
* [Making Friends](help/Making-Friends)
|
||||
|
@ -31,9 +31,7 @@ Friendica Documentation and Resources
|
|||
* [Settings & Admin Panel](help/Settings)
|
||||
* [Installing Connectors (Twitter/GNU Social)](help/Installing-Connectors)
|
||||
* [Install an ejabberd server (XMPP chat) with synchronized credentials](help/install-ejabberd)
|
||||
* [Message Flow](help/Message-Flow)
|
||||
* [Using SSL with Friendica](help/SSL)
|
||||
* [Twitter/GNU Social API Functions](help/api)
|
||||
* [Config values that can only be set in .htconfig.php](help/htconfig)
|
||||
|
||||
**Developer Manual**
|
||||
|
@ -46,9 +44,11 @@ Friendica Documentation and Resources
|
|||
* [Plugin Development](help/Plugins)
|
||||
* [Theme Development](help/themes)
|
||||
* [Smarty 3 Templates](help/smarty3-templates)
|
||||
* [Protocol Documentation](help/Protocol)
|
||||
* [Database schema documantation](help/database)
|
||||
* [Class Autoloading](help/autoloader)
|
||||
* [Code - Reference(Doxygen generated - sets cookies)](doc/html/)
|
||||
* [Twitter/GNU Social API Functions](help/api)
|
||||
|
||||
|
||||
**External Resources**
|
||||
|
|
|
@ -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.
|
||||
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.
|
||||
|
||||
|
@ -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.
|
||||
|
||||
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.
|
||||
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.
|
||||
|
@ -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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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).
|
||||
|
||||
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.
|
||||
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).
|
||||
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).
|
||||
|
||||
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.
|
||||
Public hubs are not notified.
|
||||
Requeueing is attempted in case of timeout.
|
||||
|
|
40
doc/Protocol.md
Normal file
40
doc/Protocol.md
Normal file
|
@ -0,0 +1,40 @@
|
|||
Used Protocols
|
||||
===============
|
||||
|
||||
Friendicas DFRN Protocol
|
||||
---
|
||||
|
||||
* [Document with the DFRN specification](spec/dfrn2.pdf)
|
||||
* [Schema of the contact request process](spec/dfrn2_contact_request.png)
|
||||
* [Schema of the contact request confirmation](spec/dfrn2_contact_confirmation.png)
|
||||
* [Description of the message flow](help/Message-Flow)
|
||||
|
||||
ActivityStreams
|
||||
---
|
||||
|
||||
Friendica is using ActivityStreams in version 1.0 for its activities and object types.
|
||||
Additional types are used for non standard activities.
|
||||
|
||||
* [Link to the specification](http://activitystrea.ms/head/activity-schema.html)
|
||||
* [List of used ActivityStreams verbs and object types.](https://github.com/friendica/friendica/wiki/ActivityStreams)
|
||||
|
||||
Salmon
|
||||
---
|
||||
|
||||
Salmon is used as a message exchange protocol for replies and mentions.
|
||||
|
||||
* [Link to the protocol summary](http://www.salmon-protocol.org/salmon-protocol-summary)
|
||||
|
||||
Portable Contacts
|
||||
---
|
||||
|
||||
Portable Contacts is used for friends lists.
|
||||
|
||||
* [Link to the specification](https://web.archive.org/web/20160426223008/http://portablecontacts.net/draft-spec.html) (Link to archive.org)
|
||||
|
||||
pubsubhubbub
|
||||
---
|
||||
|
||||
pubsubhubbub is used for OStatus.
|
||||
|
||||
* [Link to the specification](https://pubsubhubbub.github.io/PubSubHubbub/pubsubhubbub-core-0.4.html)
|
|
@ -26,32 +26,31 @@ Friendica - Dokumentation und Ressourcen
|
|||
* [Bugs und Probleme](help/Bugs-and-Issues)
|
||||
* [Häufig gestellte Fragen (FAQ)](help/FAQ)
|
||||
|
||||
**Technische Dokumentation**
|
||||
**Dokumentation für Administratoren**
|
||||
|
||||
* [Installation](help/Install)
|
||||
* [Konfigurationen & Admin-Panel](help/Settings)
|
||||
* [Plugins](help/Plugins)
|
||||
* [Konnektoren (Connectors) installieren (Twitter/GNU Social)](help/Installing-Connectors)
|
||||
* [Installation eines ejabberd Servers (XMPP-Chat) mit synchronisierten Anmeldedaten](help/install-ejabberd) (EN)
|
||||
* [Nachrichtenfluss](help/Message-Flow)
|
||||
* [Betreibe deine Seite mit einem SSL-Zertifikat](help/SSL)
|
||||
* [Entwickler](help/Developers)
|
||||
* [Twitter/GNU Social API Functions](help/api) (EN)
|
||||
* [Translation of Friendica](help/translations) (EN)
|
||||
* [Konfigurationswerte, die nur in der .htconfig.php gesetzt werden können](help/htconfig) (EN)
|
||||
|
||||
**Entwickler Dokumentation**
|
||||
**Dokumentation für Entwickler**
|
||||
|
||||
* [Where to get started?](help/Developers-Intro)
|
||||
* [Entwickler](help/Developers)
|
||||
* [Where to get started?](help/Developers-Intro) (EN)
|
||||
* [Help on Github](help/Github)
|
||||
* [Help on Vagrant](help/Vagrant)
|
||||
* [How to translate Friendica](help/translations)
|
||||
* [How to translate Friendica](help/translations) (EN)
|
||||
* [Bugs and Issues](help/Bugs-and-Issues)
|
||||
* [Plugin Development](help/Plugins)
|
||||
* [Theme Development](help/themes)
|
||||
* [Smarty 3 Templates](help/smarty3-templates)
|
||||
* [Protokoll Dokumentation](help/Protocol) (EN)
|
||||
* [Datenbank-Schema](help/database)
|
||||
* [Code-Referenz (mit doxygen generiert - setzt Cookies)](doc/html/)
|
||||
* [Twitter/GNU Social API Functions](help/api) (EN)
|
||||
|
||||
**Externe Ressourcen**
|
||||
|
||||
|
|
|
@ -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.
|
||||
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.
|
||||
|
||||
|
@ -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.
|
||||
|
||||
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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).
|
||||
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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).
|
||||
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.
|
||||
Öffentliche Hubs werden nicht benachrichtigt.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue