ejabberd PubSub features

The ejabberd XMPP server offers a very rich PubSub module (mod_pubsub), enabling a wide range of publish and subscribe applications. PubSub is the type of feature used by WordPress to publish updates on blog in near realtime and is a key component of the real time web.

ejabberd has received a lot of improvements in the PubSub module during the version 2.1.0 development process.

First, ejabberd’s PubSub module underwent a partial rewrite to enable optimizations in terms of I/O (input and output) resulting in a lot performance improvements. The PubSub module also now supports ODBC, which enables storage of large volumes of data.

Regarding the performance, this PubSub implementation has been deployed in production on several huge and high profile events distribution platform. We will publish more informations on those use cases soon.

As you can see, although mod_pubsub does not yet cover 100 % of the related specifications (XEP-0060 and XEP-0248), it is quite complete. Many thanks go to Brian Cully, who worked hard to contribute to this module and helped Christophe Romain, lead PubSub developer at ProcessOne.

Here is a summary of the PubSub features that are now implemented in ejabberd:

Features Implementation XEP Ref. XEP link
access-authorize 4.5 Node Access Model https://xmpp.org/extensions/xep-0060.html#accessmodels
access-open 4.5 Node Access Model https://xmpp.org/extensions/xep-0060.html#accessmodels
access-presence 4.5 Node Access Model https://xmpp.org/extensions/xep-0060.html#accessmodels
access-roster 4.5 Node Access Model https://xmpp.org/extensions/xep-0060.html#accessmodels
access-whitelist 4.5 Node Access Model https://xmpp.org/extensions/xep-0060.html#accessmodels
auto-create 7.1.4 Automatic Node Creation https://xmpp.org/extensions/xep-0060.html#publisher-publish-autocreate
auto-subscribe 9.1 Auto-Subscribe https://xmpp.org/extensions/xep-0060.html#auto-subscribe
collections   https://xmpp.org/extensions/xep-0248.html
config-node 8.2 Configure a Node https://xmpp.org/extensions/xep-0060.html#owner-configure
create-and-configure 8.1.3 Create and Configure a Node https://xmpp.org/extensions/xep-0060.html#owner-create-and-configure
create-nodes 8.1 Create a Node https://xmpp.org/extensions/xep-0060.html#owner-create
delete-items 7.2 Delete an Item from a Node https://xmpp.org/extensions/xep-0060.html#publisher-delete
delete-nodes 7.2 Delete an Item from a Node https://xmpp.org/extensions/xep-0060.html#owner-delete
filtered-notifications 9.2 Filtered Notifications https://xmpp.org/extensions/xep-0060.html#filtered-notifications
get-pending 8.6 Manage Subscription Requests https://xmpp.org/extensions/xep-0060.html#owner-subreq
instant-nodes 8.1 Create a Node https://xmpp.org/extensions/xep-0060.html#owner-create
item-ids N/A N/A
last-published 6.1.7 Receiving the Last Published Item https://xmpp.org/extensions/xep-0060.html#subscriber-subscribe-last
leased-subscription 12.18 Time-Based Subscriptions (Leases) https://xmpp.org/extensions/xep-0060.html#impl-leases
manage-subscription 8.8 Manage Subscriptions https://xmpp.org/extensions/xep-0060.html#owner-subscriptions
member-affiliation 4.1 Affiliations https://xmpp.org/extensions/xep-0060.html#affiliations
meta-data N/A N/A
modify-affiliations 8.9 Manage Affiliations https://xmpp.org/extensions/xep-0060.html#owner-affiliations
multi-collection 6.3.1 Only One Collection Node https://xmpp.org/extensions/xep-0248.html#createassociated-error-onenode
multi-subscribe 6.1.6 Multiple Subscriptions https://xmpp.org/extensions/xep-0060.html#subscriber-subscribe-multi
outcast-affiliation 4.1 Affiliations https://xmpp.org/extensions/xep-0060.html#affiliations
persistent-items N/A N/A
presence-notifications N/A N/A
presence-subscribe 9.1 Auto-Subscribe https://xmpp.org/extensions/xep-0060.html#auto-subscribe
publish 7.1 Publish an Item to a Node https://xmpp.org/extensions/xep-0060.html#publisher-publish
publish-options 7.1.5 Publishing Options https://xmpp.org/extensions/xep-0060.html#publisher-publish-options
publisher-affiliation 4.1 Affiliations https://xmpp.org/extensions/xep-0060.html#affiliations
purge-nodes 8.5 Purge All Node Items https://xmpp.org/extensions/xep-0060.html#owner-purge
retract-items 7.2 Delete an Item from a Node https://xmpp.org/extensions/xep-0060.html#publisher-delete
retrieve-affiliations 5.7 Retrieve Affiliations https://xmpp.org/extensions/xep-0060.html#entity-affiliations
retrieve-default 8.3 Request Default Configuration Options https://xmpp.org/extensions/xep-0060.html#owner-default
retrieve-items 6.4 Retrieve Items from a Node https://xmpp.org/extensions/xep-0060.html#subscriber-retrieve
retrieve-subscriptions 5.6 Retrieve Subscriptions https://xmpp.org/extensions/xep-0060.html#entity-subscriptions
subscribe 6.1 Subscribe to a Node
&
6.2 Unsubscribe from a Node
https://xmpp.org/extensions/xep-0060.html#subscriber-subscribe
&
https://xmpp.org/extensions/xep-0060.html#subscriber-unsubscribe
subscription-options 6.3 Configure Subscription Options https://xmpp.org/extensions/xep-0060.html#subscriber-configure
subscription-notifications 12.12 Notification of Subscription State Changes https://xmpp.org/extensions/xep-0060.html#impl-subchange

Feel free to download and test our latest ejabberd 2.1 RC1, your feedback is encouraged and will be welcome.


Let us know what you think 💬


Leave a Comment


This site uses Akismet to reduce spam. Learn how your comment data is processed.