當前位置:首頁 » 安卓系統 » xmppandroid源碼

xmppandroid源碼

發布時間: 2023-08-16 06:02:52

❶ 如何寫一個MQTT連接的android客戶端

MQTT是一個輕量級的消息發布/訂閱協議,它是實現基於手機客戶端的消息推送伺服器的理想解決方案。 我們可以從這里下載該項目的實例代碼,並且可以找到一個採用php書寫的伺服器端實現。 架構如下所示: wmqtt.jar 是IBM提供的MQTT協議的實現。你可以從如下站點下載它。你可以將該jar包加入你自己的Android應用程序中。 Really Small Message Broker (RSMB) ,他是一個簡單的MQTT代理,同樣由IBM提供。預設打開1883埠,應用程序當中,它負責接收來自伺服器的消息並將其轉發給指定的移動設備。 SAM是一個針對MQTT寫的PHP庫。你可以從這個下載它. send_mqtt.php是一個通過POST接收消息並且通過SAM將消息發送給RSMB的PHP腳本。 實例代碼: Ø 採用XMPP協議實現Android推送 這是我在項目中採用的方案。事實上Google官方的C2DM伺服器底層也是採用XMPP協議進行的封裝。 XMPP(可擴展通訊和表示協議)是基於可擴展標記語言(XML)的協議,它用於即時消息(IM)以及在線探測。這個協議可能最終允許網際網路用戶向網際網路上的其他任何人發送即時消息。 androidpn是一個基於XMPP協議的java開源Android push notification實現。它包含了完整的客戶端和伺服器端。經過源代碼研究我發現,該伺服器端基本是在另外一個開源工程openfire基礎上修改實現的,不過比較郁悶的是androidpn的文檔是由韓語寫的,所以整個研究過程基本都是讀源碼。它的實現示意圖如下: androidpn客戶端需要用到一個基於java的開源XMPP協議包asmack,這個包同樣也是基於openfire下的另外一個開源項目smack,不過我們不需要自己編譯,可以直接把androidpn客戶端裡面的asmack.jar拿來使用。客戶端利用asmack中提供的XMPPConnection類與伺服器建立持久連接,並通過該連接進行用戶注冊和登錄認證,同樣也是通過這條連接,接收伺服器發送的通知。 androidpn伺服器端也是java語言實現的,基於openfire開源工程,不過它的Web部分採用的是spring框架,這一點與openfire是不同的。Androidpn伺服器包含兩個部分,一個是偵聽在5222埠上的XMPP服務,負責與客戶端的XMPPConnection類進行通信,作用是用戶注冊和身份認證,並發送推送通知消息。另外一部分是Web伺服器,採用一個輕量級的HTTP伺服器,負責接收用戶的Web請求。伺服器架構如下: 最上層包含四個組成部分,分別是SessionManager,Auth Manager,PresenceManager以及Notification Manager。SessionManager負責管理客戶端與伺服器之間的會話,Auth Manager負責客戶端用戶認證管理,Presence Manager負責管理客戶端用戶的登錄狀態,NotificationManager負責實現伺服器向客戶端推送消息功能。 伺服器端界面如下,分別對應了上述的幾個功能模塊: 發送以後,我們可以在手機端看到接收的消息:

❷ android 即時通訊 xmpp 怎麼實現 求demo

你可以看看這個http://download.csdn.net/detail/u010249350/5438183#comment或者http://download.csdn.net/detail/a231930/5283850#comment這兩個後一個比較好點

❸ 如何自己搭建一個xmpp,實現推送消息

Android推送方案分析(MQTT/XMPP/GCM)
蝸牛TT 發布於 4個月前,共有 11 條評論
本文主旨在於,對目前Android平台上最主流的幾種消息推送方案進行分析和對比,比較客觀地反映出這些推送方案的優缺點,幫助大家選擇最合適的實施方案。
方案1、使用GCM服務(Google Cloud Messaging)
簡介:Google推出的雲消息服務,即第二代的G2DM。
優點:Google提供的服務、原生、簡單,無需實現和部署服務端。
缺點:Android版本限制(必須大於2.2版本),該服務在國內不夠穩定、需要用戶綁定Google帳號,受限於Google。

方案2、使用XMPP協議(Openfire + Spark + Smack)
簡介:基於XML協議的通訊協議,前身是Jabber,目前已由IETF國際標准化組織完成了標准化工作。
優點:協議成熟、強大、可擴展性強、目前主要應用於許多聊天系統中,且已有開源的Java版的開發實例androidpn。
缺點:協議較復雜、冗餘(基於XML)、費流量、費電,部署硬體成本高。

方案3、使用MQTT協議(更多信息見:http://mqtt.org/)
簡介:輕量級的、基於代理的「發布/訂閱」模式的消息傳輸協議。
優點:協議簡潔、小巧、可擴展性強、省流量、省電,目前已經應用到企業領域(參考:http://mqtt.org/software),且已有C++版的服務端組件rsmb。
缺點:不夠成熟、實現較復雜、服務端組件rsmb不開源,部署硬體成本較高。

方案4、使用HTTP輪循方式
簡介:定時向HTTP服務端介面(Web Service API)獲取最新消息。
優點:實現簡單、可控性強,部署硬體成本低。
缺點:實時性差。

對各個方案的優缺點的研究和對比,推薦使用MQTT協議的方案進行實現,主要原因是:MQTT最快速,也最省流量(固定頭長度僅為2位元組),且極易擴展,適合二次開發。接下來,我們就來分析使用MQTT方案進行Android消息的原理和方法,並架設自己的推送服務。

如果還不明白的 話,要看分析的話,給你個網址:http://m.oschina.net/blog/82059
自己看看。

❹ 如何實現消息推送功能

?可以用第三方軟體極光推送來實現。對於定製化需求較強的,或者想擁有自己推送平台的開發者,極光提供全功能的私有雲方案。
極光推送快速開始步驟: 1、到極光推送官方網站注冊開發者帳號;
2、登錄進入管理控制台,創建應用程序,得到 Appkey(SDK 與伺服器端通過 Appkey 互相識別);
3、在推送設置中給 Android 設置包名、給 iOS 上傳證書、啟用 WinPhone,根據你的需求進行選擇;
4、下載 SDK 集成到 App 里。
客戶端初始化 JPush 成功後,JPush 服務端會分配一個 Registration ID,作為此設備的標識(同一個手機不同 App 的 Registration ID 是不同的)。開發者可以通過指定具體的 Registration ID 來進行對單一設備的推送。

❺ 有哪位大哥知道基於XMPP的文件傳輸嗎,有的話,請給一份用Smack API編寫的文件傳輸的例子Java源代碼

Spark是開源的基於XMPP用了Smark的即時聊天軟體,下載它的源代碼,什麼功能都有。
public void sendFile(final OutgoingFileTransfer transfer, FileTransferManager transferManager, final String jid, final String nickname) {
this.transferManager = transferManager;

cancelButton.setVisible(true);
retryButton.setVisible(false);
this.fullJID = jid;
this.nickname = nickname;

this.transfer = transfer;
String fileName = transfer.getFileName();
long fileSize = transfer.getFileSize();
ByteFormat format = new ByteFormat();
String text = format.format(fileSize);

fileToSend = new File(transfer.getFilePath());
imageLabel.setFile(fileToSend);

fileLabel.setText(fileName + " (" + text + ")");

ContactList contactList = SparkManager.getWorkspace().getContactList();
ContactItem contactItem = contactList.getContactItemByJID(jid);

titleLabel.setText(Res.getString("message.transfer.waiting.on.user", contactItem.getDisplayName()));

if (isImage(fileName)) {
try {
URL imageURL = new File(transfer.getFilePath()).toURI().toURL();
ImageIcon image = new ImageIcon(imageURL);
image = GraphicUtils.scaleImageIcon(image, 64, 64);
imageLabel.setIcon(image);
}
catch (MalformedURLException e) {
Log.error("Could not locate image.", e);
imageLabel.setIcon(SparkRes.getImageIcon(SparkRes.DOCUMENT_INFO_32x32));
}
}
else {
File file = new File(transfer.getFilePath());
Icon icon = GraphicUtils.getIcon(file);
imageLabel.setIcon(icon);
}
cancelButton.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent mouseEvent) {
transfer.cancel();
}
});

❻ android上的socket通信的開源框架有哪些

xmpp協議的即時通訊方案,openfire androidpn,等等。它們都是使用了apache mina開發,但是這些東西基本都需要二次改造開發。而且改動還很大,我也看過這些東西的源碼,發現代碼結構不太理想,耦合的情況太多,實在不好擴展。所謂XMPP 協議。只不過是別人使用mina 自定義了一個消息編碼解碼協議。通俗的講就是,xml形式消息的編碼與解碼,我們完全沒有必要在國外這套不成熟的openfire 與xmpp 上耗費過多的精力去研究,我們完全可以通過apache mina 自定義自己的通訊協議,並可以為它使用自己的名字。我們不要盲目崇拜國外的有些東西,自己掌握原理,才是最重要的,各位切記~
這套IM系統為我個人自主開發 使用了 apache mina ,主要功能為 服務端和客戶端,客戶端 到客戶端的即時通信,可以支持包括文字 圖片,語音等任何消息形式 服務端使用的 struts2+spring3和 apache mina android端 也使用的apache mina。這套IM系統結構還是非常清晰合理的,非常容易擴展和改造,下面是android版本 的 demo的目的是只是一個演示 ,可以參照它的代碼,使用這套系統開發自己的東西,核心價值是一套高靈活性,相對標准化的即時通訊解決方案,即時聊天只是它的一種運用途徑!

熱點內容
滑板鞋腳本視頻 發布:2025-02-02 09:48:54 瀏覽:433
群暉怎麼玩安卓模擬器 發布:2025-02-02 09:45:23 瀏覽:557
三星安卓12彩蛋怎麼玩 發布:2025-02-02 09:44:39 瀏覽:743
電腦顯示連接伺服器錯誤 發布:2025-02-02 09:24:10 瀏覽:537
瑞芯微開發板編譯 發布:2025-02-02 09:22:54 瀏覽:146
linux虛擬機用gcc編譯時顯示錯誤 發布:2025-02-02 09:14:01 瀏覽:240
java駝峰 發布:2025-02-02 09:13:26 瀏覽:652
魔獸腳本怎麼用 發布:2025-02-02 09:10:28 瀏覽:538
linuxadobe 發布:2025-02-02 09:09:43 瀏覽:212
sql2000資料庫連接 發布:2025-02-02 09:09:43 瀏覽:726