XMPP 即时通信所用到的类

本文详细介绍了如何使用XMPPStream进行即时通讯应用的开发。包括将注册页面设置为通信通道的代理、通过应用委托获取XMPPStream实例、连接服务器的过程(如创建JID并连接)、认证过程中的回调方法实现等关键技术点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

XPPStream  数据流
 //把注册页面添加为通信通道的代理
    [[XMPPManager sharedManager].xmppStream addDelegate:self delegateQueue:dispatch_get_main_queue()];

(1).在使用XMPPStream的Controller中通过Application的delegate获取我们上面创建的xmppStream实例,代码如下:
//获取应用的xmppSteam(通过Application中的单例获取)   
UIApplication *application = [UIApplication sharedApplication];      id delegate = [application delegate];    
self.xmppStream = [delegate xmppStream];  
  //注册回调
[self.xmppStream addDelegate:self delegateQueue:dispatch_get_main_queue()];


(2)获取XMPP流以后,就可以连接服务器了,连接服务器分为三部分,先拼接XMPPJID, 然后把JID添加到xmppStream中,最后连接。代码如下:
//连接服务器
 -(void) xmppConnect
 {
     //1.创建JID
     XMPPJID *jid = [XMPPJID jidWithUser:@"lizelusdut" domain:MY_DOMAIN resource:@"iPhone"];
     
     //2.把JID添加到xmppSteam中
     [self.xmppStream setMyJID:jid];
     
     //连接服务器
     NSError *error = nil;
     [self.xmppStream connectWithTimeout:10 error:&error];
     if (error) {
NSLog(@"连接出错:%@",[error localizedDescription]);
     }
 }

(3)实现连接服务器后要回调的方法(连接后要认证用户密码),代码如下

 //连接后的回调
 -(void)xmppStreamDidConnect:(XMPPStream *)sender
 {
     //连接成功后认证用户名和密码
     NSError *error = nil;
     [self.xmppStream authenticateWithPassword:@"!@#admin" error:&error];
     if (error) {
         NSLog(@"认证错误:%@",[error localizedDescription]);
     }
 }


(4)实现认证成功后要回调的方法,代码如下:

//认证成功后的回调
-(void)xmppStreamDidAuthenticate:(XMPPStream *)sender
{
    NSLog(@"登陆成功");
}
(5)认证失败后要调用的方法,代码如下:
 //认证成功后的回调 2 -(void)xmppStream:sender didNotAuthenticate:(DDXMLElement *)error
 {
     NSLog(@"登陆失败");
 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值