1. 程式人生 > >Android訊息推送(二)--基於MQTT協議實現的推送功能

Android訊息推送(二)--基於MQTT協議實現的推送功能

前段時間公司需要android端的手機群推功能,我們就通過MQTT來實現了該功能。

MQTT的官網如下 http://mqtt.org/

關於系統的主要架構就不詳述了。這關係的到職業道德問題,在這裡只談談MQTT實現推送的功能。

我們是通過ApacheActiveClient開源專案的基礎上來實現的。

下面介紹客戶端和伺服器簡單的搭建:

客戶端 :

執行結果如下圖所示 : 


其中Test_android1是對手機的唯一標識,這個生成策略是可以自己來定的。很多時候我們需要話更多的時間去研究它的原始碼,而不是去問別人,只有當自己實在找不到解決方案的時候再問,我覺得這樣更利於我們對專案的理解和繼續擴充套件。

伺服器端

該專案非常強大,支援配置伺服器的主從,分散式等。

當你搭建成功伺服器後可以使用客戶端連線了。點選Start Push service按鈕啟動推送功能。

連線成功後你會在控制檯看到如下介面:


在伺服器後臺你將看到:


畫的紅線部分就是你的手機裝置,然後單擊進入如下介面:


最後單擊確定 ,在手機通知欄將會收到訊息 :


至此,這就是簡單的伺服器想客戶端推送的訊息了。

當然這是最最簡單的實現了。接下來就要看自己公司實際的需要進行擴充套件伺服器或者客戶端了。

其實MQTT最顯著的功能,就是群推。客戶端可以註冊多個token(客戶端的唯一標識)可以讓所有客戶端都註冊該token即可,然後傳送的時候,只需要針對一個token發訊息,那麼所有的手機都收到了。不用像其他的推送一樣,對每個token都去發一遍。所以MQTT群發的效率的極高的。這樣的話對手機端來說就很好了,也許我們需要對某個程式的所有手機發、向某個程式某個版本手機發,向某臺手機發推送 等等

用MQTT都可以很輕鬆的實現。

接下來就是要靠自己去研究MQTT了。其他官網文件,和一些開源的功能已經提供了很多我們學習的資料。

如果github上面的Android客戶端的程式不能執行,可以下載我們用的(也是github上下載的):

相關推薦

Android訊息()--基於MQTT協議實現功能

前段時間公司需要android端的手機群推功能,我們就通過MQTT來實現了該功能。 MQTT的官網如下 http://mqtt.org/ 關於系統的主要架構就不詳述了。這關係的到職業道德問題,在這裡

MQTT協議服務(

broker 消息發布 常見 google ios roi 服務端 蘋果 ios端 MQTT簡介 MQTT全稱叫做Message Queuing Telemetry Transport,意為消息隊列遙測傳輸,是IBM開發的一個即時通訊協議。由於其維護一個長連接以輕量級低消耗

關於MQTT協議實現訊息系統

測試環境:  硬碟:1T,5400  (效果不佳) 得出了一個異樣的測試結果: 持久:  插入200000條JSON,共消耗:25.175 s 平均:7944.389275074478 條/秒 插入200000條JSON,共消耗:34.47 s 平均:5802.1467943138

()websocket實現訊息基於spring4.0實現

  1、新建springBoot專案,新增依賴        &n

Android 音視頻深入 十五 FFmpeg 實現基於Rtmp協議流(附源碼下載)

音視頻 FFmpeg Rtmp 推流 源碼地址https://github.com/979451341/Rtmp 1.配置RTMP服務器 這個我不多說貼兩個博客分別是在mac和windows環境上的,大家跟著弄MAC搭建RTMP服務器https://www.jianshu.com/p/6fce

基於MQTT協議的 org.eclipse.paho.client.mqttv3 原始碼學習()

一、主要類介紹 二、重點類程式碼分析 對於長連線,一般是直接從訊息的接收和傳送類開始讀,上面知道paho中訊息傳送和接收是在CommsSender和CommsReceiver實現的, 所以直接差看CommsSender程式碼。 [ja

MQTT協議實現Android中的訊息收發

前言 MQTT(Message Queuing Telemetry Transport,訊息佇列遙測傳輸),基於釋出/訂閱正規化的訊息協議,是一種極其簡單和輕量級的訊息協議,專為受限裝置和低頻寬、高延遲或不可靠的網路設計。今天主要說明一下MQTT協議在Android中進行訊息的收發應用,關於MQTT協議的基礎

通過集群的方式解決基於MQTT協議的RabbitMQ消息收發

其中 enc msg received 127.0.0.1 結束 技術 tms gpu 在完成了基於AMQP協議的RabbitMQ消息收發後,我們要繼續實現基於MQTT協議的RabbitMQ消息收發。 由於C#的RabbitMQ.Client包中只實現了基於AMQP協議的消

基於MQTT協議的 org.eclipse.paho.client.mqttv3 原始碼學習(一)

一、MQTT協議簡敘 MQTT 有以下特點: 使用釋出/訂閱訊息模式,提供一對多的訊息釋出,解除應用程式耦合 使用TCP/IP提供網路連線 有三種釋出訊息服務質量 “至多一次 Qos level=0”,訊息釋出完全依賴底層 TCP/IP 網路。會發生訊息丟失或重複。這

Ubuntu環境下基於MQTT協議的mosquitto以及叢集的安裝和簡單使用

本文就眾多MQTT-Server中的mosquitto的安裝進行講解。 一、下載。 對於Ubuntu系統,可以使用sudo apt-get 來安裝mosquitto,但是這種方法雖然簡單,但是對於配置檔案的修改和管理比較麻煩,配置檔案需要自己寫好然後啟動時載入,因此不太推

基於MQTT協議進行應用開發

來自:http://www.cnblogs.com/secondtononewe/p/6073089.html 官方協議有句如下的話來形容MQTT的設計思想: “It is designed for connections with remote locations

基於MQTT協議的Mosquitto的使用及libmosquitto客戶端程式設計

概述:工作之餘學習mqtt,使用開源的Mosquitto實現mqtt的使用。如:broker(伺服器/代理),訊息訂閱及釋出。 系統環境:ubuntu14.04 1,MQTT簡介 MQTT 是一個輕量級協議,使用基於 TCP/IP 協議的釋出/訂閱

Android開發系列(十四):Notification的功能與使用方法

font _id when ice extends 開發 content androi mark 關於消息的提示有兩種:一種是Toast,一種就是Notification。前者維持的時間比較短暫,後者維持的時間比較長。 並且我們尋常手機的應用比方網易、貼吧等等都有非常多

iOS開發之使用MQTT協議實現遠程通訊

lis height msg PE contex 特性 AC eva http p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 16.0px "PingFang SC" } p.p2 { margin: 0.0px 0.0px 0

mqtt協議實現即時通訊-activemq nginx.支援JS,JAVA,微信小程式

MQTT協議通訊   簡述:            使用MQTT協議實現後臺推送、及時通訊等功能。本案例實現了web-js端、微信小程式端、Java client端、Java serv

使用nodeMCU平臺mqtt協議實現物聯網通訊

國外有個哥們已經寫了一份如何使用nodeMCU平臺玩轉mqtt協議(連結請看附錄),我覺得大部分寫的已經算很清楚,不過有些點,沒提到,我碰了很多次壁,所以呢,我就基於他的文章,加上一些補充。 前言 nodeMCU, MQTT是什麼,本文就不做詳細介紹了。 一個最常見的物

MySQL多資料來源 (基於spring+aop實現讀寫分離)

一,為什麼要進行讀寫分離呢?   因為資料庫的“寫操作”操作是比較耗時的(寫上萬條條資料到Mysql的可能要1分鐘分鐘)。但是資料庫的“讀操作”卻比“寫操作”耗時要少的多(從Mysql的讀幾萬條資料條資料可能只要十秒鐘),而我們在開發過程中大多數也是查詢操作比較多。所以讀寫分離解決的是,資料庫的

淺談基於WOPI協議實現跨瀏覽器的Office線上編輯解決方案

    如今,基於Web版的Office 線上預覽與編輯功能已成為一種趨勢,而關於該技術的實現卻成為了國內大部份公司的技術挑戰,挑戰主要存在於兩方面:     其一:目前國內乃至微軟本身,還沒有相對較為完善的解決方案     其二:對於開發人員來

Nginx + Tomcat基於HTTP協議實現反代、動靜分離、負載均衡和session會話保持

1、演示環境: IP 作業系統 部署程式 192.168.1.143 CentOS 7.5 Nginx 192.168.1.144 CentOS 7.5 Tomcat

Apache + Tomcat基於HTTP協議實現反代、動靜分離、負載均衡和session會話保持

1、演示環境: IP 作業系統 部署程式 192.168.1.143 CentOS 7.6 Apache 192.168.1.144 CentOS 7.6 Tomcat