Ios 登录时未收到退订状态或iq

Ios 登录时未收到退订状态或iq,ios,xmpp,xmppframework,unsubscribe,Ios,Xmpp,Xmppframework,Unsubscribe,我和另一个用户正在进行订阅和聊天,如果我在线,一切正常。当另一个用户将我从花名册中删除时,我将收到以下IQ和状态信息,根据这些信息,我也将该用户从我的花名册中删除 didReceive IQ ANOTHERUSER@MYSERVER didReceivePresence 'unsubscribe' from ANOTHERUSER@MYSERVER didReceive IQ none didReceive IQ ANOTHERUSER@MYSERVER didReceivePresen

我和另一个用户正在进行订阅和聊天,如果我在线,一切正常。当另一个用户将我从花名册中删除时,我将收到以下IQ和状态信息,根据这些信息,我也将该用户从我的花名册中删除

didReceive IQ ANOTHERUSER@MYSERVER

didReceivePresence 'unsubscribe' from ANOTHERUSER@MYSERVER

didReceive IQ none

didReceive IQ ANOTHERUSER@MYSERVER

didReceivePresence 'unsubscribed' from ANOTHERUSER@MYSERVER

didReceivePresence 'unavailable' from ANOTHERUSER@MYSERVER

但如果我离线,另一个用户将我从花名册中删除。当我再次登录时,我没有收到来自该用户的状态信息或iq。因此,我无论如何也不会收到通知。在我花名册中的openfire服务器上,它显示“无”为“无”,但我没有收到任何信息

好吧,如果XMPP用户在线,我会说该用户会收到任何状态信息。如果我错了,请纠正我

为了向您指出一个方法,我要告诉您,如果您使用openfire作为xmpp服务器,则openfire创建了一个名为“of Presence”的表。当任何用户联机时,服务器都会发送“不可用”状态存储。对于在线用户,“离线状态”字段设置为零。我还没有检查过unsubscribe,但您可以检查该状态是否存储在该数据库中。如果是节省,也许有办法得到一些东西

另一种方法是获取花名册列表,检查丢失的花名册并删除该花名册

正如您在评论中提到的,您可以发送一条编码的消息。这是一个选择,但要确保你不会错过这条信息

我通过我的应用程序Web服务实现了这一点,因为获得已取消订阅的用户的可用性并不总是合适的


希望这有帮助。这只是我的知识。如果你有什么事就纠正我

我实现的一个解决方案是,每当用户将我从名册中删除时,我将从另一端发送一条编码消息。未收到状态和iq,但在我再次登录时收到消息。