Software / code / prosody
File
spec/scansion/pubsub_resend_on_sub.scs @ 13491:cf367ab36fcc
util.prosodyctl: Use notify socket to wait for Prosody to be ready
Previously, prosodyctl only waits for the pidfile to appear, which does
not necessarily mean that Prosody is fully ready to receive traffic.
By waiting until Prosody says it's ready via the systemd notify socket
we know for sure that Prosody is really ready.
Notably this should ensure that when running `make integration-test`
Prosody is really ready when Scansion starts running tests.
Not sure if this timeout handling is optimal.
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Sun, 19 May 2024 13:06:55 +0200 |
| parent | 11854:b605cbd5f13b |
line wrap: on
line source
# Pubsub: Send last item on subscribe #1436 [Client] Romeo jid: admin@localhost password: password // admin@localhost is assumed to have node creation privileges [Client] Juliet jid: juliet@localhost password: password --------- Romeo connects Romeo sends: <iq type="set" to="pubsub.localhost" id='create1'> <pubsub xmlns="http://jabber.org/protocol/pubsub"> <create node="princely_musings"/> </pubsub> </iq> Romeo receives: <iq type="result" id='create1'/> Romeo sends: <iq to="pubsub.localhost" id="config-never" type="set"> <pubsub xmlns="http://jabber.org/protocol/pubsub#owner"> <configure node="princely_musings"> <x xmlns="jabber:x:data" type="submit"> <field var="FORM_TYPE" type="hidden"> <value>http://jabber.org/protocol/pubsub#node_config</value> </field> <field type='list-single' var='pubsub#send_last_published_item'> <value>never</value> </field> </x> </configure> </pubsub> </iq> Romeo receives: <iq from="pubsub.localhost" id="config-never" type="result"/> Romeo sends: <iq type="set" to="pubsub.localhost" id='pub1'> <pubsub xmlns="http://jabber.org/protocol/pubsub"> <publish node="princely_musings"> <item id="current"> <entry xmlns="http://www.w3.org/2005/Atom"> <title>Soliloquy</title> <summary>Lorem ipsum dolor sit amet</summary> </entry> </item> </publish> </pubsub> </iq> Romeo receives: <iq type="result" id='pub1'/> Juliet connects Juliet sends: <iq type="set" to="pubsub.localhost" id='sub1'> <pubsub xmlns="http://jabber.org/protocol/pubsub"> <subscribe node="princely_musings" jid="${Juliet's full JID}"/> </pubsub> </iq> Juliet receives: <iq type="result" id='sub1'/> Juliet sends: <iq type="set" to="pubsub.localhost" id='unsub1'> <pubsub xmlns="http://jabber.org/protocol/pubsub"> <unsubscribe node="princely_musings" jid="${Juliet's full JID}"/> </pubsub> </iq> Juliet receives: <iq type="result" id='unsub1'/> Romeo sends: <iq to="pubsub.localhost" id="config-on_sub" type="set"> <pubsub xmlns="http://jabber.org/protocol/pubsub#owner"> <configure node="princely_musings"> <x xmlns="jabber:x:data" type="submit"> <field var="FORM_TYPE" type="hidden"> <value>http://jabber.org/protocol/pubsub#node_config</value> </field> <field type='list-single' var='pubsub#send_last_published_item'> <value>on_sub</value> </field> </x> </configure> </pubsub> </iq> Romeo receives: <iq from="pubsub.localhost" id="config-on_sub" type="result"/> Juliet sends: <iq type="set" to="pubsub.localhost" id='sub2'> <pubsub xmlns="http://jabber.org/protocol/pubsub"> <subscribe node="princely_musings" jid="${Juliet's full JID}"/> </pubsub> </iq> Juliet receives: <iq type="result" id='sub2'/> Juliet receives: <message type="headline" from="pubsub.localhost"> <event xmlns="http://jabber.org/protocol/pubsub#event"> <items node="princely_musings"> <item id="current" publisher="${Romeo's JID}"> <entry xmlns="http://www.w3.org/2005/Atom"> <title>Soliloquy</title> <summary>Lorem ipsum dolor sit amet</summary> </entry> </item> </items> </event> </message> Juliet sends: <iq type="set" to="pubsub.localhost" id='unsub2'> <pubsub xmlns="http://jabber.org/protocol/pubsub"> <unsubscribe node="princely_musings" jid="${Juliet's full JID}"/> </pubsub> </iq> Juliet receives: <iq type="result" id='unsub2'/> Juliet disconnects Romeo sends: <iq type="set" to="pubsub.localhost" id='del1'> <pubsub xmlns="http://jabber.org/protocol/pubsub#owner"> <delete node="princely_musings"/> </pubsub> </iq> Romeo receives: <iq type="result" id='del1'/> Romeo disconnects // vim: syntax=xml: