The server speaks three notification dialects — rssCloud over REST, rssCloud over XML-RPC, and WebSub — but underneath they are one hub over one subscriber list. The headline consequence:
A publisher sends one signal, and every subscriber to that resource is notified — no matter which protocol each of them subscribed with.
A change can be announced three ways, and all of them converge on the same internal routine:
| Publisher sends | Front door |
|---|---|
POST /ping (form url) |
rssCloud REST |
rssCloud.ping (resourceUrl) |
rssCloud XML-RPC |
POST /websub with hub.mode=publish |
WebSub |
Each one hands the hub a resource URL and triggers the same sequence.
That third step is the whole point: the subscriber list is keyed by resource, not by
protocol. Each subscription carries a protocol, and the hub picks the matching
delivery for it:
Subscription protocol |
How that subscriber is notified |
|---|---|
http-post |
HTTP POST to the callback with a url parameter |
https-post |
the same over HTTPS |
xml-rpc |
an XML-RPC notify call to the callback |
websub |
HTTP POST of the full feed body, with Link and optional X-Hub-Signature |
You don't have to care which protocol your subscribers chose, and they don't have to care which one your publisher speaks:
/ping) still notifies WebSub
subscribers.hub.mode=publish) still notifies rssCloud
subscribers.The protocol is a per-subscriber delivery detail. The change signal is shared.