XMPP使用簡介--登錄


  在現階段的通信服務中,各種標准都有,因此會出現無法實現相互連通,而XMPP(Extensible Message and presence Protocol)協議的出現,實現了整個及時通信服務協議的互通。有了這個協議之后,使用任何一個組織或者個人提供的即使通信服務,都能夠無障礙的與其他的及時通信服務的用戶進行交流。例如google 公司2005年推出的Google talk就是一款基於XMPP協議的即時通信軟件。下面我們就談論一下如何簡單的使用XMPP

 一、環境的搭建,本文采用的是openFire 服務器

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

  2、點擊下面圖標進行安裝JDK 和服務器

 

  3、啟動后,點擊Open Admin Console按鈕,自動在瀏覽器中打開本地web配置頁面http://localhost:9090/setup/index.jsp然后進行服務器配置

  4、將語言設置為中文即可

 

  5、設置服務器地址為本機

  6、設置數據庫

 

  在執行此步驟之前需要做一些准備工作,

1創建數據庫 :create database openfire;
2導入openfire資源文件夾 resources/database下的數據表:source /usr/local/openfire/resources/database/openfire_mysql.sql
7、特性設置

  8、設置openfire服務器管理員的帳號和密碼

  9、安裝完成,點擊按鈕登錄

  登錄后界面如下

  10、按照上面操作創建用戶密碼

  11、此時的准備工作基本完成

 二 導入XMPP

  1、將XMPP全部導入工程

 

  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 制定服務器地址,用戶名,密碼
    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、進行密碼驗證,通過代理方法返回結果

#pragma mark 驗證身份請求
-(void)xmppStreamDidConnect:(XMPPStream *)sender{

    NSLog(@"鏈接成功");
    
    //發送身份驗證請求
    NSString * pwd=@"jereh123";
    [self.stream authenticateWithPassword:pwd error:nil];
}

#pragma mark 密碼正確
- (void) xmppStreamDidAuthenticate:(XMPPStream *)sender{

    NSLog(@"身份驗證成功");
    
    //通知服務器上線
    [self onLine];
}

#pragma mark 密碼錯誤
- (void)xmppStream:(XMPPStream *)sender didNotAuthenticate:(NSXMLElement *)error{
    
    NSLog(@"身份驗證失敗");
}

  6、開始連接

 

  想要了解更多內容的小伙伴,可以點擊查看源碼,親自運行測試。

  疑問咨詢或技術交流,請加入官方QQ群:JRedu技術交流 (452379712)

 

作者: 傑瑞教育
出處: http://www.cnblogs.com/jerehedu/ 
本文版權歸煙台傑瑞教育科技有限公司和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM