File

spec/scansion/lastactivity.scs @ 11660:68f0196ece2a

net.server_epoll: Immediately attempt to read from newly accepted connections This may speed up client-first protocols (e.g. XMPP, HTTP and TLS) when the first client data already arrived by the time we accept() it. If LuaSocket supported TCP_DEFER_ACCEPT we could use that to further increase the chance that there's already data to handle. In case no data has arrived, no harm should be done, :onreadable would simply set the read timeout and we'll get back to it once there is something to handle.
author Kim Alvefur <zash@zash.se>
date Thu, 08 Jul 2021 17:57:44 +0200
parent 10732:f5d88ad24b30
line wrap: on
line source

# XEP-0012: Last Activity / mod_lastactivity

[Client] Romeo
	jid: romeo@localhost
	password: password

-----

Romeo connects

Romeo sends:
	<presence>
		<status>Hello</status>
	</presence>

Romeo receives:
	<presence from="${Romeo's full JID}">
		<status>Hello</status>
	</presence>

Romeo sends:
	<presence type="unavailable">
		<status>Goodbye</status>
	</presence>

Romeo receives:
	<presence from="${Romeo's full JID}" type="unavailable">
		<status>Goodbye</status>
	</presence>

# mod_lastlog saves time + status message from the last unavailable presence

Romeo sends:
	<iq id='a' type='get'>
		<query xmlns='jabber:iq:last'/>
	</iq>

Romeo receives:
	<iq type='result' id='a'>
		<query xmlns='jabber:iq:last' seconds='0'>Goodbye</query>
	</iq>

Romeo disconnects

# recording ended on 2020-04-20T14:39:47Z