[Starting this again, now I understand better how it works and have actually updated Psi to a version that receives User Tune notifications...]
If it was using standard Publish-Subscribe (PubSub) nodes (i.e. if it was broadcasting generic events), it would look like this:
But it's actually using the User Tune protocol, which is based on PEP, a special case of PubSub where each user automatically becomes a PubSub node, and all the clients in their roster ("buddies") are automatically subscribed to their notifications:
Clients (such as a "Now Playing" page) subscribe to a specific user - radio1, for example - by adding them to their roster and being authorised to receive presence notifications; whenever that user's status changes the message gets broadcast to all the subscribers.
Here's an example message:
<message from="email@example.com" to="firstname.lastname@example.org/Psi"> <event xmlns="http://jabber.org/protocol/pubsub#event"> <items node="http://jabber.org/protocol/tune"> <item id="1203447868"> <tune xmlns="http://jabber.org/protocol/tune"> <artist>Panic! At The Disco</artist> <title>Nine In The Afternoon</title> </tune> </item> </items> </event> </message>