I know what you must be asking yourself when reading the title of this post. Something along, what exactly is PubSubHubbub? Well perhaps, not with those same words.
PubSubHubbub is a simple, open, web-hook-based pubsub protocol & open source reference implementation, that enables RSS subscribers to instantly receive a feed as soon as new content is published.
Believe it or not, this capability to receive instant updates wasn’t available until recently. Prior to PubSubHubbub, when content was published, it didn’t get push to the feed aggregator automatically. The feed aggregator’s only way of getting updates from the feeds was to poll the site’s RSS feed at regular interval and check whether there was new content. With such an awkward method there is often a delay in syndication and it could be several hours after content goes live before the RSS subscriber gets updated.
PubSubHubbub aims to get rid of this time-delaying barrier and make everything real time, by updating the end subscriber instantly once the content is published.
Brett Slatkin and Brad Fitzpatrick demonstrate what PubSubHubbub is and how it works on the video below:
The protocol in a nutshell is as follows:
- A feed URL (a “topic”) declares its Hub server(s) in its Atom or RSS XML file, via <link rel="hub" ...>. The hub(s) can be run by the publisher of the feed, or can be a community hub that anybody can use. (Atom and RssFeeds are supported)
- A subscriber (a server that’s interested in a topic), initially fetches the Atom URL as normal. If the Atom file declares its hubs, the subscriber can then avoid lame, repeated polling of the URL and can instead register with the feed’s hub(s) and subscribe to updates.
- The subscriber subscribes to the Topic URL from the Topic URL’s declared Hub(s).
- When the Publisher next updates the Topic URL, the publisher software pings the Hub(s) saying that there’s an update.
- The hub efficiently fetches the published feed and multicasts the new/changed content out to all registered subscribers.
For more information, please visit: