iOS开发--XMPPFramework--好友模块
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS开发--XMPPFramework--好友模块相关的知识,希望对你有一定的参考价值。
前面几篇,我们讨论了环境的配置,框架的导入和用户登陆,这一篇我们来说说好友模块。
在进入正题之前,我们来说下调试。
首先,打开偏好设置,看一下Openfire服务器和mysql是否打开,记得先打开MySQL,再打开Openfire,随后,点击Open Admin ConConsole,
出现下面的页面,就成功了。
输入用户名和密码,登录,出现这个界面:
随后,点击导航栏上的“用户/组”,出现了用户和聊天组的管理
我们可以看到,用户中有两个,一个是管理员,一个是普通用户zhangsan,我们点击左侧菜单,新建一个用户wangwu,登录密码123456。
在mac上,有个叫 信息 的应用,点开它。,并在菜单栏中选择添加账户
选择其他“信息”账户,点击继续。
点击登录,成功连上,我们可以回到Openfire控制台,发现张三已经登录。
这样就成功了,我们可以用程序和张三聊天。。
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
接下来是今天的正题,好友模块。
我们在上一篇设置模块的方法中,加入好友模块,并激活。
// 好友模块 self.xmppRoster = [[XMPPRoster alloc] initWithRosterStorage:[XMPPRosterCoreDataStorage sharedInstance]]; // 不自动同意好友申请 [self.xmppRoster setAutoAcceptKnownPresenceSubscriptionRequests:NO]; [self.xmppRoster setAutoClearAllUsersAndResources:NO]; //登录完成之后 不自动同步一次好友列表 [self.xmppRoster setAutoFetchRoster:NO]; // 好友聊天记录模块 self.xmppMessageArchiving = [[XMPPMessageArchiving alloc] initWithMessageArchivingStorage:[XMPPMessageArchivingCoreDataStorage sharedInstance]]; // 激活 [self.xmppRoster activate:self.xmppStream]; [self.xmppMessageArchiving activate:self.xmppStream];
我们可以通过下面这个代理方法获得好友的上下线通知:
- (void)xmppStream:(XMPPStream *)sender didReceivePresence:(XMPPPresence *)presence { //这个if成立的时候说明对方想要订阅你 if ([presence.type isEqualToString:@"subscribe"]) { [self.xmppRoster acceptPresenceSubscriptionRequestFrom:presence.from andAddToRoster:YES]; } }
收到一个presence消息,当然,我们这里没有对好友上线做操作,当前代码的意思是收到好友订阅请求,并且同意。
- (void)addUser:(XMPPJID *)jid withNickname:(NSString *)optionalName;
上面这段代码的作用就是发送添加好友的请求。然后,对方在上面的代理中收到订阅消息,选择同意或者弹出加好友的请求。
下一篇,我们来说说好友列表模块。
以上是关于iOS开发--XMPPFramework--好友模块的主要内容,如果未能解决你的问题,请参考以下文章
如何在iOS的XMPPFramework中实现发送好友请求的方式?
XMPPFramework - 如何获取在线和离线好友列表?