Difference between revisions of "Tech pages/PubSub"

From XMPP WIKI
Jump to navigation Jump to search
(initial copy)
 
m
 
(7 intermediate revisions by 5 users not shown)
Line 1: Line 1:
 
== Overview ==
 
== Overview ==
 
+
XMPP PubSub is a protocol extension for generic publish-subscribe functionality, specified in XEP-0060. The protocol enables XMPP entities to create nodes (topics) at a pubsub service and publish information at those nodes; an event notification (with or without payload) is then broadcasted to all entities that have subscribed to the node. Pubsub therefore adheres to the classic Observer design pattern and can serve as the foundation for a wide variety of applications, including news feeds, content syndication, rich presence, geolocation, workflow systems, network management systems, and any other application that requires event notifications. The personal eventing protocol (PEP), specified in XEP-0163, provides a presence-aware profile of PubSub that enables every user's Jabber ID to function as a virtual pubsub service for rich presence, microblogging, social networking, and real-time interactions.
XMPP PubSub is a protocol extension for generic publish-subscribe functionality, specified in XEP-0060. The protocol enables XMPP entities to create nodes (topics) at a pubsub service and publish information at those nodes; an event notification (with or without payload) is then broadcasted to all entities that have subscribed to the node. Pubsub therefore adheres to the classic Observer design pattern and can serve as the foundation for a wide variety of applications, including news feeds, content syndication, rich presence, geolocation, workflow systems, network management systems, and any other application that requires event notifications. The personal eventing protocol (PEP), specified in XEP-0163, provides a presence-aware profile of PubSub that enables every user's JabberID to function as a virtual pubsub service for rich presence, microblogging, social networking, and real-time interactions.
 
  
 
== Specifications ==
 
== Specifications ==
 
 
PubSub is defined in several specifications:
 
PubSub is defined in several specifications:
* XEP-0060: Publish-Subscribe
+
* [https://xmpp.org/extensions/xep-0060.html XEP-0060: Publish-Subscribe]
* XEP-0163: Personal Eventing Protocol
+
* [https://xmpp.org/extensions/xep-0163.html XEP-0163: Personal Eventing Protocol]
* XEP-0248: PubSub Collection Nodes
+
* [https://xmpp.org/extensions/xep-0248.html XEP-0248: PubSub Collection Nodes]
  
 
=== Payloads ===
 
=== Payloads ===
 
 
PubSub and PEP are "payload-agnostic" -- you can use them as neutral transports for a wide variety of data formats. Some of the more popular payloads are listed below, especially for rich presence related to IM users:
 
PubSub and PEP are "payload-agnostic" -- you can use them as neutral transports for a wide variety of data formats. Some of the more popular payloads are listed below, especially for rich presence related to IM users:
 
* Activities
 
* Activities
Line 25: Line 22:
  
 
== Implementations ==
 
== Implementations ==
 
 
=== Servers ===
 
=== Servers ===
 
 
The following XMPP servers include built-in support for PubSub or PEP:
 
The following XMPP servers include built-in support for PubSub or PEP:
 
* ejabberd
 
* ejabberd
 
* Jabber XCP
 
* Jabber XCP
 
* Openfire
 
* Openfire
* Tigase
+
* [http://www.tigase.org/ Tigase]
 +
* [https://prosody.im/ Prosody]
 +
* [https://metronome.im/ Metronome]
  
 
=== Server Components ===
 
=== Server Components ===
 
 
* Idavoll
 
* Idavoll
  
 
=== Clients ===
 
=== Clients ===
 
 
* Gajim
 
* Gajim
 
* Psi
 
* Psi
 +
* [https://movim.eu Movim] (see [http://wiki.movim.eu/en:dev:protocol_implementations the Wiki, protocol implementation])
 +
* Salut à Toi
  
 
=== Libraries ===
 
=== Libraries ===
 
 
* strophe (C or JavaScript)
 
* strophe (C or JavaScript)
 
* XMPP4R (Ruby)
 
* XMPP4R (Ruby)
 +
* [https://igniterealtime.org/projects/smack Smack] (Java, JVM and Android)
  
 
== Discussion Venues ==
 
== Discussion Venues ==
 
+
The XMPP Standards Foundation maintains a dedicated email list ([http://mail.jabber.org/mailman/listinfo/pubsub pubsub@xmpp.org]) about PubSub, intended as a low-volume venue for discussion of PubSub implementation and protocol issues. As with all XSF technology lists, the pubsub@xmpp.org list is open to all interested individuals.
The XMPP Standards Foundation maintains a dedicated email list ("pubsub@xmpp.org") about PubSub, intended as a low-volume venue for discussion of PubSub implementation and protocol issues. As with all XSF technology lists, the pubsub@xmpp.org list is open to all interested individuals.
 
 
 
 
* Info page and subscription information
 
* Info page and subscription information
 
* Subscribe via email
 
* Subscribe via email
 
* Discussion archives
 
* Discussion archives

Latest revision as of 01:47, 17 December 2020

Overview

XMPP PubSub is a protocol extension for generic publish-subscribe functionality, specified in XEP-0060. The protocol enables XMPP entities to create nodes (topics) at a pubsub service and publish information at those nodes; an event notification (with or without payload) is then broadcasted to all entities that have subscribed to the node. Pubsub therefore adheres to the classic Observer design pattern and can serve as the foundation for a wide variety of applications, including news feeds, content syndication, rich presence, geolocation, workflow systems, network management systems, and any other application that requires event notifications. The personal eventing protocol (PEP), specified in XEP-0163, provides a presence-aware profile of PubSub that enables every user's Jabber ID to function as a virtual pubsub service for rich presence, microblogging, social networking, and real-time interactions.

Specifications

PubSub is defined in several specifications:

Payloads

PubSub and PEP are "payload-agnostic" -- you can use them as neutral transports for a wide variety of data formats. Some of the more popular payloads are listed below, especially for rich presence related to IM users:

  • Activities
  • Atom / RSS Notifications
  • Avatars
  • Chatroom Visits
  • Gaming Activities
  • Geolocation
  • Moods
  • Music Tunes
  • TV/Video Activities
  • Website Visits

Implementations

Servers

The following XMPP servers include built-in support for PubSub or PEP:

Server Components

  • Idavoll

Clients

Libraries

  • strophe (C or JavaScript)
  • XMPP4R (Ruby)
  • Smack (Java, JVM and Android)

Discussion Venues

The XMPP Standards Foundation maintains a dedicated email list (pubsub@xmpp.org) about PubSub, intended as a low-volume venue for discussion of PubSub implementation and protocol issues. As with all XSF technology lists, the pubsub@xmpp.org list is open to all interested individuals.

  • Info page and subscription information
  • Subscribe via email
  • Discussion archives