我怎么知道用户是否使用相同的ID登录其他设备,我在我的应用程序中使用了XMPP



我在iPhone中实现了一个聊天应用程序,我想知道每当用户已经登录并且他/她想使用相同的用户名和密码在其他设备上再次登录时,它应该显示弹出用户已登录其他设备。

我不知道用哪种方法检查登录状态。

你在appdelegate中有一个方法使用它来解决它

- (void)xmppStream:(XMPPStream *)sender didNotAuthenticate:(NSXMLElement *)error
{
    // show the popup if user  didNotAuthenticate
}

此方法可能会对您有所帮助

您可以在服务器端为数据库中的用户维护一个标志。当用户第一次登录时,更新数据库字段值。现在,下次当用户尝试从任何其他设备登录时,请检查数据库字段的值,用户是否已登录。如果是,则显示消息。

当同一个 JID 登录一个新 JID 时,旧的 JID 将调用这个委托: -(void)xmppStreamDidDisconnect:(XMPPStream *)sender withError:(NSError *)error ,Xcode 将像这样记录: "Error Domain=GCDAsyncSocketErrorDomain Code=7 "Socket closed by remote peer" UserInfo={NSLocalizedDescription=Socket closed by remote peer}"

上述情况是在APP中建立的激活状态,如果没有,如老的通过自动登录,或者访问的新设备已经落地。 @spaleja,他的解决方案可能是一个解决方案。

讨论

最新更新