XMPP学习Day1

我是个初学者。我热爱iOS开发。最近迷上了即时通讯。然后在自己电脑上面搭建一个服务器自己是弄一下。在这里记录自己学习的历程以此鞭策自己。

这里忽略建立服务器的艰辛。哈哈,也可以和我讨论一下。

感谢博主的博客http://blog.csdn.net/kangkangz4/article/category/1089711,让我学习到了XMPP的知识。

今天就是xmpp的登录以及注销的demo。


AppDelegate.h 文件

//
//  AppDelegate.h
//  xmpp框架导入
//
//  Created by 陆巧怡 on 15/7/16.
//  Copyright (c) 2015年 Simon. All rights reserved.
//

#import <UIKit/UIKit.h>

@interface AppDelegate : UIResponder <UIApplicationDelegate>

@property (strong, nonatomic) UIWindow *window;



/**
 *  注销登录
 */
-(void)logout;
@end




AppDelegate.m  文件

//
//  AppDelegate.m
//  xmpp框架导入
//
//  Created by 陆巧怡 on 15/7/16.
//  Copyright (c) 2015年 Simon. All rights reserved.
//

#import "AppDelegate.h"
#import "XMPPFramework.h"
/**
 *  在AppDelegate实现登录
 1.初始化XMPPStream
 2.连接服务器时候要【传一个JID】
 3.连接到服务器后,在发送密码授权
 4.授权成功后,发送"在线"消息
 */
@interface AppDelegate ()<XMPPStreamDelegate>{
    
    XMPPStream *_xmppStream;
}

// 1.初始化XMPPStream
-(void)setupXMPPStream;
// 2.连接服务器时候要【传一个JID】
-(void)connectToHost;
// 3.连接到服务器后,在发送密码授权
-(void)sendPwdToHost;
// 4.授权成功后,发送"在线"消息
-(void)sendOnlineToHost;

@end

@implementation AppDelegate


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    
    // 程序一启动就连接主机
    [self connectToHost];
    
    
    return YES;
}


#pragma mark -私用方法
#pragma mark -初始化初始化XMPPStream
-(void)setupXMPPStream{
    
    _xmppStream = [[XMPPStream alloc]init];
    
    //设置代理
    [_xmppStream addDelegate:self delegateQueue:dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)];
    
}


#pragma mark -连接服务器时候要【传一个JID】
-(void)connectToHost{
    NSLog(@"1.开始连接到服务器");
    if (!_xmppStream) {
        [self setupXMPPStream];
    }
    
    
    //设置用户JID
    /**
     *  jidWithUser:用户名
     domain:服务器
     resource:标识用户登录的客户端 iPhone Android
     */
    XMPPJID *myJID =[XMPPJID jidWithUser:@"dadong" domain:@"simon.local" resource:@"iPhone"];
    _xmppStream.myJID = myJID;
    
    //设置服务器域名
    //不仅可以是域名,还可以是IP地址。
    _xmppStream.hostName = @"simon.local";
    
    //设置端口 如果服务器的端口是5222 则可以省略不写
    _xmppStream.hostPort = 5222;
    
    
    /**
     *  在配置hostPort连接配置的主机名。超时是可选的。没有超时则使用XMPPStreamTimeoutNone。如果还没有设置主机名或myJID,这个方法将返回没有和参数设置错误。
     *
     *  @param NSTimeInterval <#NSTimeInterval description#>
     *
     *  @return <#return value description#>
     */
    NSError *err =nil;
    BOOL state =[_xmppStream connectWithTimeout:XMPPStreamTimeoutNone error:&err];
    if (!state) {
        
        NSLog(@"%@",err);
    }
}

#pragma mark -连接到服务器后,在发送密码授权
-(void)sendPwdToHost{
    
    NSError *err = nil;
    [_xmppStream authenticateWithPassword:@"123456" error:&err];
    if (err) {
        NSLog(@"%@",err);
    }
    
}

#pragma mark -授权成功后,发送"在线"消息
-(void)sendOnlineToHost{
    NSLog(@"3.发送 在线 消息");
    XMPPPresence *presence = [XMPPPresence presence];
    
    NSLog(@"%@",presence);
    [_xmppStream sendElement:presence];
    
}


#pragma mark -XMPPStream代理
#pragma mark 与主机连接成功
-(void)xmppStreamDidConnect:(XMPPStream *)sender{
    
    NSLog(@"与主机连接成功");
    NSLog(@"2.再发送密码授权");
    //主机连接成功,发送密码进行授权
    [self sendPwdToHost];
}

#pragma mark 与主机连接失败
-(void)xmppStreamDidDisconnect:(XMPPStream *)sender withError:(NSError *)error{
    
    
    if (error) {
        NSLog(@"与主机连接失败

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值