XMPP学习Day1

来源:互联网 发布:java redis lua脚本 编辑:程序博客网 时间:2024/05/16 02:20

我是个初学者。我热爱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
原创粉丝点击