XMPPFrameWork IOS 开发(三)登录
来源:互联网 发布:飞控算法程序自学 编辑:程序博客网 时间:2024/05/16 08:33
原始地址:XMPPFrameWork IOS 开发(三)
XMPP中常用对象们:
XMPPStream:xmpp基础服务类
XMPPRoster:好友列表类
XMPPRosterCoreDataStorage:好友列表(用户账号)在core data中的操作类
XMPPvCardCoreDataStorage:好友名片(昵称,签名,性别,年龄等信息)在core data中的操作类
XMPPvCardTemp:好友名片实体类,从数据库里取出来的都是它
xmppvCardAvatarModule:好友头像XMPPReconnect:如果失去连接,自动重连
XMPPRoom:提供多用户聊天支持
XMPPPubSub:发布订阅
第一步 生成xmppstream对象 并且设置委托
- -(void)setupStream{
- //初始化XMPPStream
- xmppStream = [[XMPPStream alloc] init];
- [xmppStream addDelegate:self delegateQueue:dispatch_get_current_queue()];
- }
第二步 设置登陆帐户名字与服务器名字,并连接
- -(BOOL)connect{
- [self setupStream];
- //从本地取得用户名,密码和服务器地址
- NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
- NSString *userId = [defaults stringForKey:USERID];
- NSString *pass = [defaults stringForKey:PASS];
- NSString *server = [defaults stringForKey:SERVER];
- if (![xmppStream isDisconnected]) {
- return YES;
- }
- if (userId == nil || pass == nil) {
- return NO;
- }
- //设置用户
- [xmppStream setMyJID:[XMPPJID jidWithString:userId]];
- //设置服务器
- [xmppStream setHostName:server];
- //密码
- password = pass;
- //连接服务器
- NSError *error = nil;
- if (![xmppStream connect:&error]) {
- NSLog(@"cant connect %@", server);
- return NO;
- }
- return YES;
- }
连接服务器
- //启动连接操作后,回调函数(委托函数)
- - (void)xmppStreamWillConnect:(XMPPStream *)sender将被调用,表示将要连接
- - (void)xmppStreamDidConnect:(XMPPStream *)sender//登陆服务器成功
- {
- NSError *error = nil;
- //验证帐户密码
- NSString *password = @"test1";
- BOOL bRes = [_xmppStream authenticateWithPassword:password error:&error];
- }
- //验证成功的回调函数
- - (void)xmppStreamDidAuthenticate:(XMPPStream *)sender
- {
- XMPPPresence *presence = [XMPPPresencepresence];
- //可以加上上线状态,比如忙碌,在线等
- [[selfxmppStream] sendElement:presence];//发送上线通知
- }
- //验证失败的回调
- - (void)xmppStream:(XMPPStream *)sender didNotAuthenticate:(NSXMLElement *)error
0 0
- XMPPFrameWork IOS 开发(三)登录
- XMPPFrameWork IOS 开发(三)登录
- [置顶] XMPPFrameWork IOS 开发(三)登录
- XMPPFrameWork IOS 开发(三)登录
- XMPPFramework iOS开发(四)注册登录
- XMPPFramework iOS开发(三)XMPP工具类
- XMPPFrameWork IOS 开发(一)xmpp简介
- XMPPFrameWork IOS 开发(二)- xcode配置
- XMPPFrameWork IOS 开发(六)聊天室
- XMPPFrameWork IOS 开发(七)消息回执
- XMPPFrameWork IOS 开发(七)消息回执
- XMPPFrameWork IOS 开发(一)xmpp简介
- XMPPFrameWork IOS 开发(六)聊天室
- XMPPFrameWork IOS 开发(七)消息回执
- XMPPFrameWork IOS 开发(一)xmpp简介
- [置顶] XMPPFrameWork IOS 开发(六)聊天室
- XMPPFramework iOS开发(二)用户模型
- XMPPFramework iOS开发(五)电子名片
- 浅谈MySQL索引背后的数据结构及算法
- Android ListView一些应该知道的事
- 已读的, 在读的, 想读的技术书.
- WGS84、Web墨卡托、火星坐标、百度坐标互转
- SVN-Eclipse 中嵌套svn 的疑难杂症
- XMPPFrameWork IOS 开发(三)登录
- SCP
- protobuf一些问题
- 分辨率和屏幕尺寸
- android九宫格学习笔记
- 如何有效的布局棋牌网站内部链接
- Android开机启动应用
- 使用HttpHandler 来实现url路径伪静态
- 《C语言深度剖析》学习笔记--------第一章-----关键字