Introduction
Publish-Subscribe Extension for XMPP as described in XEP-0060 Version 1.13rc3 the stable specification can be found at XEP-0060.
The Publish-Subscribe (pubsub for short) extension has many uses, taken to the extreme, it subsumes most of XMPPs functionality see the humorous XEP-0207.
The basic functionality is simple. Users subscribe to nodes, and everything published to the node will be distributed to all subscribers. The extension defines many variations, but the basic functionality will always be the same (see below for the list of features).
Summary of the features (as in Chapter 10 of the spec)
Done
| Name | Description | Support | Section |
|---|---|---|---|
| access-open | The default access model is "open". | OPTIONAL | Nodes Access Models |
| create-nodes | Creation of nodes is supported. | RECOMMENDED | Create a Node |
| delete-nodes | Deletion of nodes is supported. | RECOMMENDED | Delete a Node |
| item-ids | Publishers may specify item identifiers. | RECOMMENDED | |
| multi-subscribe | A single entity may subscribe to a node multiple times. | OPTIONAL | Multiple Subscriptions |
| persistent-items | Persistent items are supported. | RECOMMENDED | |
| publish | Publishing items is supported. | REQUIRED | Publish an Item to a Node |
| subscribe | Subscribing and unsubscribing are supported. | REQUIRED | Subscribe to a Node and Unsubscribe from a Node |
| retrieve-affiliations | Retrieval of current affiliations is supported. | RECOMMENDED | Retrieve Affiliations |
| retrieve-subscriptions | Retrieval of current subscriptions is supported. | RECOMMENDED | Retrieve Subscriptions |
Planned
| Name | Description | Support | Section |
|---|---|---|---|
| access-authorize | The default access model is "authorize". | OPTIONAL | Nodes Access Models |
| get-pending | Retrieval of pending subscription approvals is supported. | OPTIONAL | Manage Subscription Requests |
| manage-subscriptions | Node owners may manage subscriptions. | OPTIONAL | Manage Subscriptions |
| modify-affiliations | Node owners may modify affiliations. | OPTIONAL | Manage Affiliations |
| member-affiliation | The member affiliation is supported. | RECOMMENDED | Affiliations |
| outcast-affiliation | The outcast affiliation is supported. | RECOMMENDED | Affiliations |
| publisher-affiliation | The publisher affiliation is supported. | RECOMMENDED | Affiliations |
| config-node | Configuration of node options is supported. | RECOMMENDED | Configure a Node |
| create-and-configure | Simultaneous creation and configuration of nodes is supported. | RECOMMENDED | Create and Configure a Node |
| retrieve-default | Retrieval of default node configuration is supported. | RECOMMENDED | Request Default Configuration Options |
| meta-data | Node meta-data is supported. | RECOMMENDED | |
| last-published | By default the last published item is sent to new subscribers and on receipt of available presence from existing subscribers. | RECOMMENDED | Event Types |
| delete-items | Deletion of items is supported. | RECOMMENDED | Delete an Item from a Node |
| retract-items | Item retraction is supported. | OPTIONAL | Delete an Item from a Node |
| purge-nodes | Purging of nodes is supported. | OPTIONAL | Purge All Node Items |
| retrieve-items | Item retrieval is supported. | RECOMMENDED | Retrieve Items from a Node |
Not yet
| Name | Description | Support | Section |
|---|---|---|---|
| access-presence | The default access model is "presence". | OPTIONAL | Nodes Access Models |
| access-roster | The default access model is "roster". | OPTIONAL | Nodes Access Models |
| access-whitelist | The default access model is "whitelist". | OPTIONAL | Nodes Access Models |
| auto-create | The service supports auto-creation of nodes on publish to a non-existent node. | OPTIONAL | Automatic Node Creation |
| auto-subscribe | The service supports auto-subscription to a nodes based on presence subscription. | RECOMMENDED | Auto-Subscribe |
| collections | Collection nodes are supported. | OPTIONAL | Refer to XEP-0248 |
| filtered-notifications | Notifications are filtered based on Entity Capabilities data. | RECOMMENDED | Filtered Notifications |
| instant-nodes | Creation of instant nodes is supported. | RECOMMENDED | Create a Node |
| leased-subscription | Time-based subscriptions are supported. | OPTIONAL | Time-Based Subscriptions (Leases) |
| multi-collection | A single leaf node can be associated with multiple collections. | OPTIONAL | Refer to XEP-0248 |
| presence-notifications | Presence-based delivery of event notifications is supported. | OPTIONAL | |
| presence-subscribe | Authorized contacts are automatically subscribed to a user's virtual pubsub service. | RECOMMENDED | Auto-Subscribe |
| publish-options | Publishing an item with options is supported. | OPTIONAL | Publishing Options |
| subscription-notifications | Notification of subscription state changes is supported. | OPTIONAL | Notification of Subscription State Changes |
| subscription-options | Configuration of subscription options is supported. | OPTIONAL | Configure Subscription Options |