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

时间:2013-11-13 04:52:00

标签: ios iphone objective-c xmppframework

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

我不知道检查登录状态的方法。

3 个答案:

答案 0 :(得分:3)

你在appdelegate中使用了一种方法来解决它

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

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

当相同的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,他的解决方案可能是一个解决方案。

discuss