基於XMPP協議的即時通訊

2021-07-11 01:48:30 字數 1554 閱讀 8839

最近公司的專案需要用到即時通訊技術,就花了一點時間對即時通訊技術進行研究。經過調研發現,通過openfire+spark+smack就可以實現。廢話不多說,下面我們就來講一下具體的實現。

1.什麼叫openfire?

openfire是乙個即時通訊伺服器,也稱之為即時通訊平台。它是基於xmpp協議的,大家所熟悉的通訊軟體qq、msn和gtalk等等,其中gtalk就是基於xmpp協議的實現。

在即時通訊中往往因為需要儲存一些狀態或者資料所以不能採用點對點通訊,而是需要搭建伺服器來**。

2.spark是什麼?

3.smack是什麼?

smack你可以看成是一套封裝好了的用於實現xmpp協議傳輸的api,它是乙個非常簡單並且功能強大的類庫,給使用者傳送訊息只需要三行**。

下面我將一些比較重要的**片段展示出來:

// 連線引數

connectionconfiguration connconfig = new connectionconfiguration("192.168.0.1", 5222);

connconfig.setreconnectionallowed(true);

connconfig.setsecuritymode(securitymode.disabled); // securitymode.required/disabled

connconfig.setsaslauthenticationenabled(false); // true/false

connconfig.setcompressionenabled(false);

// 配置伺服器

xmppconnection connection = new xmppconnection(connconfig);

try catch (xmppexception e)

}});

// 傳送聊天資訊

chat.sendmessage("hello!");

檔案傳輸的重要**片段:(請注意更換你自己的伺服器位址、使用者名稱和密碼以及想要訪問的使用者名稱)

// 連線引數

connectionconfiguration connconfig = new connectionconfiguration("192.168.0.1", 5222);

connconfig.setreconnectionallowed(true);

connconfig.setsecuritymode(securitymode.disabled); // securitymode.required/disabled

connconfig.setsaslauthenticationenabled(false); // true/false

connconfig.setcompressionenabled(false);

// 配置伺服器

xmppconnection connection = new xmppconnection(connconfig);

try catch (exception e)

}});

} catch (xmppexception e)

}

xmpp即時通訊詳解

摘要 此文件定義了可擴充套件訊息出席協議 xmpp 的核心特性 協議使用xml元素在任意兩個網路端點間近實時的交換結構化資訊。當xmpp為交換xml資料提供一般化,可擴充套件的框架時,它主要用於建立滿足rfc2779的即時訊息與出席應用的需求。1 介紹 1.1 概要 xmpp是乙個開放的可擴充套件標...

即時通訊之xmpp協議簡析

最近的專案用到了阿里百川即時通訊雲。按照官網的demo以及官方開發文件整合和開發的過程還是相當的順利的。因此,今天在這裡我並不打算贅述開發過程,而是簡單談一下自己對於即時通訊的原理的理解。目前im有四種協議 即時資訊和空間協議 impp 空間和即時資訊協議 prim 針對即時通訊和空間平衡擴充的程序...

python基於tcp協議的簡單即時通訊

sk.bind 127.0.0.1 9001 申請作業系統的資源,繫結ip和埠 sk.listen 128 被動監聽客戶端傳送過來的訊息,數字表示同一時刻能夠連線客戶端的程度 while true 為了和多個客戶端進行握手 conn,addr sk.accept 阻塞,當出現客戶端的請求完成連線,並...