案例1
用户第一次连接时。
它将状态available
发送到服务器。在这种情况下,聊天工作正常。
在场接听:
<presence xmlns="jabber:client" from="***a52ce0a@localhost/2169635904633549718426" to="***a52ce0a@localhost/2169635904633549718426"/
案例2
当连接断开主要是因为互联网。
再次连接到互联网。 XmmpStream
最初自动连接。但现在它正在发送此状态响应:
在场接听(这次是三次。):
<presence xmlns="jabber:client" from="58fdb5192bd7c1205a52ce0a@localhost/6962759452435694889430" to="58fdb5192bd7c1205a52ce0a@localhost/6962759452435694889430"/>`
<presence xmlns="jabber:client" from="58fdb5192bd7c1205a52ce0a@localhost/2169635904633549718426" to="58fdb5192bd7c1205a52ce0a@localhost/6962759452435694889430"><delay xmlns="urn:xmpp:delay" from="58fdb5192bd7c1205a52ce0a@localhost/2169635904633549718426" stamp="2017-04-25T06:33:04.442Z"/></presence>
<presence xmlns="jabber:client" from="58fdb5192bd7c1205a52ce0a@localhost/2169635904633549718426" to="58fdb5192bd7c1205a52ce0a@localhost/6962759452435694889430" type="unavailable"/> // Why unavailable automatically.
通过观察响应,我猜它现在已连接到来自同一用户的不同会话。所以离线消息不会出现。
这是来自 iOS 方面还是来自 ejabbered 方面?
为什么它会在重新连接时自动创建不同的会话。如果没有创建不同的会话,那么为什么离线消息不会到来。