1. 程式人生 > >Android Mqtt 開源框架 EasyMqttAndroidClient

Android Mqtt 開源框架 EasyMqttAndroidClient

EasyMqttAndroidClient

使Mqtt安卓客戶端變的更簡單、更好用

簡介

基於第三方開源框架Mqtt Android客戶端封裝的用於接收、釋出推送訊息的元件。

功能

1.支援訊息的訂閱與釋出
2.支援伺服器的連線與斷開
3.支援連線狀態的判斷
4.支援自動重連、清除session、心跳間隔、超時時間等配置

使用方法

第一步:在project的build.gradle 檔案中新增JitPack依賴

allprojects {
    repositories {
        ...
        maven { url 'https://jitpack.io' }
    }
}

第二步: 在Module的build.gradle檔案中新增對本庫的依賴

dependencies {
    ...
    compile 'com.github.ZS-ZhangsShun:EasyMqttAndroidClient:1.0'
}

第三步:開始使用 以下方法可直接拷貝到專案中使用 引數根據實際情況修改即可 詳情參考 github 上 demo中 MainActivity的示例程式碼

(1)構建MqttService物件

/**
 * 構建EasyMqttService物件
 */
private void buildEasyMqttService() {
    mqttService = new EasyMqttService.Builder()
            //設定自動重連
            .autoReconnect(true)
            //設定不清除回話session 可收到伺服器之前發出的推送訊息
            .cleanSession(false)
            //唯一標示 保證每個裝置都唯一就可以 建議 imei
            .clientId("your clientId")
            //mqtt伺服器地址 格式例如:tcp://10.0.261.159:1883
            .serverUrl("your mqtt servier url")
            //心跳包預設的傳送間隔
            .keepAliveInterval(20)
            //構建出EasyMqttService 建議用application的context
            .bulid(this.getApplicationContext());
}

(2)連線Mqtt伺服器

/**
 * 連線Mqtt伺服器
 */
private void connect() {
    mqttService.connect(new IEasyMqttCallBack() {
        @Override
        public void messageArrived(String topic, String message, int qos) {
            //推送訊息到達
        }

        @Override
        public void connectionLost(Throwable arg0) {
            //連線斷開
        }

        @Override
        public void deliveryComplete(IMqttDeliveryToken arg0) {

        }

        @Override
        public void connectSuccess(IMqttToken arg0) {
            //連線成功
        }

        @Override
        public void connectFailed(IMqttToken arg0, Throwable arg1) {
            //連線失敗
        }
    });
}

(3)訂閱主題

/**
 * 訂閱主題 這裡訂閱三個主題分別是"a", "b", "c"
 */
private void subscribe() {
    String[] topics = new String[]{"a", "b", "c"};
    //主題對應的推送策略 分別是0, 1, 2 建議服務端和客戶端配置的主題一致
    // 0 表示只會傳送一次推送訊息 收到不收到都不關心
    // 1 保證能收到訊息,但不一定只收到一條
    // 2 保證收到切只能收到一條訊息
    int[] qoss = new int[]{0, 1, 2};
    mqttService.subscribe(topics, qoss);
}

(4)關閉連線

/**
 * 關閉連線
 */
private void close() {
    mqttService.close();
}

(5)斷開連線

/**
 * 斷開連線
 */
private void disconnect() {
    mqttService.disconnect();
}

(6)判斷連線狀態

/**
 * 判斷服務是否連線
 */
private boolean isConnected() {
    return mqttService.isConnected();
}

(7)釋出訊息

/**
 * 釋出訊息
 */
private void publish(String msg, String topic, int qos, boolean retained) {
    mqttService.publish(msg, topic, qos, retained);
}

相關推薦

Android Mqtt 開源框架 EasyMqttAndroidClient

EasyMqttAndroidClient 使Mqtt安卓客戶端變的更簡單、更好用 簡介 基於第三方開源框架Mqtt Android客戶端封裝的用於接收、釋出推送訊息的元件。 功能 1.支援訊息的訂閱與釋出 2.支援伺服器的連線與斷開 3.支援連線狀態的判斷 4

25類Android常用開源框架

視頻 from rod gen map cli 崩潰報告 進行 ase 1、圖片加載,緩存,處理 框架名稱功能描述 Android Universal Image Loader 一個強大的加載,緩存,展示圖片的庫,已過時 Picasso 一個強大的圖片下載與緩

Android 常用開源框架源碼解析 系列 (十)Rxjava 異步框架

oid super 嚴重 ids 代碼 執行者 輸出 ... tin 一、Rxjava的產生背景 一、進行耗時任務 傳統解決辦法: 傳統手動開啟子線程,聽過接口回調的方式獲取結果 傳統解決辦法的缺陷: 隨著項目的深入、擴展。代碼量

Android 常用開源框架源碼解析 系列 (十一)picasso 圖片框架

hand 需求 trim cor pan setname github ESS true 一、前言 Picasso 強大的圖片加載緩存框架 api加載方式和Glide 類似,均是通過鏈式調用的方式進行調用 1.1、作用 Picasso 管理整個圖片加載、轉換、緩存

Android 常用開源框架源碼解析 系列 (九)dagger2 呆哥兔 依賴註入庫

ica 記得 接口 手動 識別 pda 進行 strace 內聚 一、前言 依賴註入定義 目標類中所依賴的其他的類的初始化過程,不是通過手動編碼的方式創建的。 是將其他的類已經初始化好的實例自動註入的目標類中。 “依賴註入”也是面向對象編程的 設計模式 ————

android面試——開源框架原始碼

1、EventBus (1)通過註解+反射來進行方法的獲取 註解的使用:@Retention(RetentionPolicy.RUNTIME)表示此註解在執行期可知,否則使用CLASS或者SOURCE在執行期間會被丟棄。 通過反射來獲取類和方法:因為對映關係實際上是類對映到所有此類

android面試——開源框架的原始碼解析

1、EventBus (1)通過註解+反射來進行方法的獲取 註解的使用:@Retention(RetentionPolicy.RUNTIME)表示此註解在執行期可知,否則使用CLASS或者SOURCE在執行期間會被丟棄。 通過反射來獲取類和方法:因為對映關係實際上是類對映到所有此類

Android UI 開源框架ImageLoader的完美例子

                Android開源框架ImageLoader的完美例子2013年8月19日開源框架之Universal_Image_Loader學習很多人都在討論如何讓圖片能在非同步載入更加流暢,可以顯示大量圖片,在拖動ListView的時候不會出現卡的現象。關於ImageLoader這個開源

Android-Fk:[開源框架] 安卓崩潰資訊收集框架ACRA原理流程

Android-Fk:[開源框架] 安卓崩潰資訊收集框架ACRA原理流程 本文主要梳理ACRA原理及程式碼流程 順序圖的uml檔案 簡化圖的draw.io原始檔 分享至百度網盤 https://pan.baidu.com/s/1zAapEu9mmOZsTMDlCRCRQg 一. 學習

Android使用開源框架完成城市列表三級聯動(從服務端獲取資料來源和自定義json資料來源)

Android-PickerView使用步驟:1.新增Jcenter倉庫 Gradle依賴:compile 'com.contrarywind:Android-PickerView:4.1.4'2.在Activity中新增如下程式碼:package com.xueqing.r

各種Android UI開源框架

目錄 具體內容 ============================= UI Awesome-MaterialDesign - MaterialDesignCenter改名為Awesome-MaterialDesign,優

Android UI-開源框架ImageLoader的完美例子

Android開源框架ImageLoader的完美例子2013年8月19日開源框架之Universal_Image_Loader學習很多人都在討論如何讓圖片能在非同步載入更加流暢,可以顯示大量圖片,在拖動ListView的時候不會出現卡的現象。關於ImageLoader這個開

Android RoboGuice開源框架、Butter Knife開源框架淺析

Google Guice on Android(RoboGuice) 今天介紹一下Google的這個開源框架RoboGuice, 它的作用跟之前講過的Dagger框架幾乎是一樣的,只是Dagger比它的功能更強大一些。Dagger通過專注於一種簡化的功能集以一種不同的方式達到了更好的效

Android常見開源框架總結

記錄各個部分用到的一些開源框架/庫,方便快速實現功能。因為都是開源的,所以如果有時間,最好把實現的程式碼看看,學習一下程式設計思想。 表單驗證 我選擇了android-saripaar 在github中搜”form validation”,選擇Java

android基於開源網絡框架asychhttpclient,二次封裝為通用網絡請求組件

定義 pen ntc ucc 編寫 stat ner href face 網絡請求是全部App都不可缺少的功能,假設每次開發都重寫一次網絡請求或者將曾經的代碼拷貝到新的App中,不是非常合理,出於此目的,我希望將整個網絡請求框架獨立出來,與業務邏輯分隔開,這

轉:Android酷炫實用的開源框架(UI框架

-m amp 風格 per nap nor barchart ui框架 方式 前言 忙碌的工作終於可以停息一段時間了,最近突然有一個想法,就是自己寫一個app,所以找了一些合適開源控件,這樣更加省時,再此分享給大家,希望能對大家有幫助,此博文介紹的都是UI上面的框架,接下來

Android 使用開源表格框架MPAndroidChart

val ase .get fse post new appear tom chan 地址:https://github.com/PhilJay/MPAndroidChart 1. Gradle dependency (recommended) Add the follow

BAT大牛 帶你深度剖析Android 10大開源框架

安卓第1章 課程介紹(提供bat內推和簡歷指導)1-1 課程導學第2章 Okhttp網絡庫深入解析和相關面試題分析2-1 okhttp框架流程分析2-2 okhttp同步請求方法2-3 okhttp異步請求方法2-4 okhttp同步請求流程和源碼分析2-5 okhttp異步請求流程和源碼分析-12-6 ok

Android 開源框架 ( 六 ) Volley --- Google的輕量級網絡通信框架

quest 緩存 erro jsonarray static 行數據 rmi cif jpg 一.Volley介紹      2013年Google I/O大會上推出的一個新的Android網絡通信框架,目標是將HTTP的通信操作再進行簡單化,除了簡單易用之外,Volley

Android 開源框架 ( 九 ) 圖片加載框架---ImageLoader

count 自動縮放 算法 mit ces nor 針對 eas get 一.引言   Android的每一個App通常只擁有有限的系統資源,Android設備為每個App分配的內存大小是也是有上限的,並且,針對不同的設備配置所分配的內存大小也是不一樣的,最小為16MB。圖