我已经在 iphone 中实现了一个聊天应用程序我想知道,每当用户已经登录并且如果他/她想使用相同的用户名和密码再次登录其他设备时,它应该显示弹出用户已登录其他一些设备。
我不知道用哪种方法检查登录状态。
我已经在 iphone 中实现了一个聊天应用程序我想知道,每当用户已经登录并且如果他/她想使用相同的用户名和密码再次登录其他设备时,它应该显示弹出用户已登录其他一些设备。
我不知道用哪种方法检查登录状态。
您在 appdelegate 中有一种方法可以使用它来解决它
- (void)xmppStream:(XMPPStream *)sender didNotAuthenticate:(NSXMLElement *)error
{
// show the popup if user didNotAuthenticate
}
这个方法可能对你有帮助
您可以在服务器端为数据库中的用户维护一个标志。当用户第一次登录时,更新数据库字段值。现在下次当用户尝试从任何其他设备登录时,检查数据库字段的值是否用户已经登录。如果是,则显示该消息。
当同一个 JID 登录一个新的,旧的会调用这个 delegate:
-(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,他的解决方案可能是一个解决方案。