zoukankan      html  css  js  c++  java
  • XMPP使用简单介绍--登录

      在现阶段的通信服务中,各种标准都有。因此会出现无法实现相互连通,而XMPP(Extensible Message and presence Protocol)协议的出现,实现了整个及时通信服务协议的互通。有了这个协议之后。使用不论什么一个组织或者个人提供的即使通信服务,都可以无障碍的与其它的及时通信服务的用户进行交流。

    比如google 公司2005年推出的Google talk就是一款基于XMPP协议的即时通信软件。以下我们就谈论一下怎样简单的使用XMPP

     一、环境的搭建。本文採用的是openFire server

      1、下载最新openfire for mac版 http://www.igniterealtime.org/downloads/index.jsp

      2、点击以下图标进行安装JDK 和server

     

      3、启动后,点击Open Admin Consolebutton,自己主动在浏览器中打开本地web配置页面http://localhost:9090/setup/index.jsp然后进行server配置

      4、将语言设置为中文就可以

     

      5、设置server地址为本机

      6、设置数据库

     

      在运行此步骤之前须要做一些准备工作。

    1创建数据库 :create database openfire;
    2导入openfire资源目录 resources/database下的数据表:source /usr/local/openfire/resources/database/openfire_mysql.sql
    7、特性设置

      8、设置openfireserver管理员的帐号和password

      9、安装完毕。点击button登录

      登录后界面例如以下

      10、依照上面操作创建用户password

      11、此时的准备工作基本完毕

     二 导入XMPP

      1、将XMPP所有导入project

     

      2、导入依赖包

     

      因为动态库的存在因此须要做下面操作

     

     三、到眼下为止我们的XMPP成功导入到项目中,以下我们開始编码实现用户登录

      1、在代理里面引入包。而且定义流属性

     

      2、初始化而且加入代理

    #pragma mark 初始化
    - (void)setUpStream{
        
        if (_stream==nil) {
            
            //1 初始化stream
            _stream=[[XMPPStream alloc] init];
            
            //2 加入代理
            [_stream addDelegate:self delegateQueue:dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)];
            
        }
        
    }

      3、建立连接

    #pragma mark 建立链接
    //建立连接
    - (void) connect{
        
        //1 初始化
        [self setUpStream];
        
        //2 制定server地址,username,password
        NSString * userName=@"jereh@jereh.local";
        NSString * hostName=@"jereh.local";
        
        //3 设置JID和主机
        XMPPJID * jid=[XMPPJID jidWithString:userName];
        
        [self.stream setMyJID:jid];
        [self.stream setHostName:hostName];
        
        //4 開始连接
        NSError * error;
        [self.stream connectWithTimeout:XMPPStreamTimeoutNone error:&error];
        
        if (error) {
            NSLog(@"发送连接请求失败");
        }else{
            NSLog(@"发送连接请求成功");
        }
        
    }

      5、进行password验证,通过代理方法返回结果

    #pragma mark 验证身份请求
    -(void)xmppStreamDidConnect:(XMPPStream *)sender{
    
        NSLog(@"链接成功");
        
        //发送身份验证请求
        NSString * pwd=@"jereh123";
        [self.stream authenticateWithPassword:pwd error:nil];
    }
    
    #pragma mark password正确
    - (void) xmppStreamDidAuthenticate:(XMPPStream *)sender{
    
        NSLog(@"身份验证成功");
        
        //通知server上线
        [self onLine];
    }
    
    #pragma mark password错误
    - (void)xmppStream:(XMPPStream *)sender didNotAuthenticate:(NSXMLElement *)error{
        
        NSLog(@"身份验证失败");
    }

      6、開始连接

      想要了解很多其它内容的小伙伴。能够点击查看源代码,亲自执行測试。

      疑问咨询或技术交流。请增加官方QQ群:JRedu技术交流 (452379712)

    作者:杰瑞教育
    出处:http://blog.csdn.net/jerehedu/ 
    本文版权归烟台杰瑞教育科技有限公司和博客园共同拥有。欢迎转载,但未经作者允许必须保留此段声明。且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
     
  • 相关阅读:
    HDU1266 Reverse Number
    codevs1380 没有上司的舞会
    codevs1163 访问艺术馆
    codevs2144 砝码称重 2
    codevs1553 互斥的数
    codevs1230 元素查找
    codevs3118 高精度练习之除法
    codevs1245 最小的N个和
    codevs1063 合并果子
    codevs1052 地鼠游戏
  • 原文地址:https://www.cnblogs.com/yutingliuyl/p/7053672.html
Copyright © 2011-2022 走看看