日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android 使用mqtt实例,包括接收服务器推送以及上传数据到服务器

發布時間:2023/12/10 Android 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android 使用mqtt实例,包括接收服务器推送以及上传数据到服务器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、最方便的方法,使用dlc的module連接mqtt

?

步驟、1——導入dlc依賴和module

//dlc_mqttmodule implementation project(':garbagerecyclebox')//dlc公庫 implementation('com.github.DlcAndroidTeam123456:DlcCommonLibrary:1.0.31-simple') {exclude group: 'me.yokeyword', module: 'fragmentation' }

?

?步驟、2——創建工具方法,調用即可

// MqttProxy.init(this);//dlc的mqtt類使用 // MqttMgr.get().publish();//dlc發送mqtt對象 MqttMgr.get().publish(MqttInformation.GDJBHSX_RECEIVE, 0, openBackBean); public static final String GDJBHSX_RECEIVE = "sdfyhsx_receive/" + DeviceUtil.getAndroidId(); /*** @author : LGQ* @date : 2020/05/18 10* @desc :*/public class MqttProxy {private static Activity activity;public static void init(Context context) {activity = (Activity) context;DlcMqttConnectOptions dlcMqttConnectOptions = new DlcMqttConnectOptions(context,MqttInformation.SERVER_URI, MqttInformation.USER_NAME, MqttInformation.PASS_WORD); // MqttMgr.get().addSubscribeTopics(MqttInformation.GDJBHSX_PUSH_APKBG, 0);MqttMgr.get().addSubscribeTopics(MqttInformation.GDJBHSX_PUSH, 0);LgqLogutil.e("主題地址=== "+MqttInformation.GDJBHSX_PUSH); // MqttMgr.get().addSubscribeTopics(MqttInformation.GDJBHSX_PUSH_UDCOMPANY, 0); // MqttMgr.get().addSubscribeTopics(MqttInformation.GDJBHSX_PUSH_ERRORKE, 0); // MqttMgr.get().addSubscribeTopics(MqttInformation.GDJBHSX_PUSH_UPDATEAPK, 0);MqttMgr.get().init(context, dlcMqttConnectOptions, new BaseMqttCallBack() {@Overridepublic void messageArrived(String topic, String message, int messageId) {handleMessageArrived(topic, message, messageId); // ObServernotice.getInstance().notifyObserver(5481,5,message,null);LgqLogutil.e("mqtt注冊成功sxxxx00000=== "+message);}@Overridepublic void onSuccess(DlcMqttToken asyncActionToken) {LgqLogutil.e("mqtt注冊成功sxxxx");}@Overridepublic void onFailure(DlcMqttException e) {LgqLogutil.e("成功sxxxx1111111");}});}public static void onDestroy() {MqttMgr.get().onDestroy();activity = null;}private static void handleMessageArrived(String topic, String message, int messageId) {try { // JSONObject json = new JSONObject(message); // String typeName = json.getString("topic");LgqLogutil.e("返回數據====="+message); // switch (typeName) { // // }} catch (Exception e) {e.printStackTrace();}Log.e("))))))))))))", "topic:" + topic + ",message:" + message + ",messageId:" + messageId);} }

?

?2、使用原生mqtt類實現mqtt推送以及上報數據

?

?步驟、1——創建工具方法,調用即可

?

public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main); // MqttProxy.init(this);//dlc的mqtt類使用 // MqttMgr.get().publish();//dlc發送mqtt對象initMqtt();//原生mqtt類使用}private void initMqtt() {Looper.get().looper();}}

?、、、、、、、、其余工具方法下載demo復制即可、、、、、、、、、、、、、、

?

/*** author: meixi* Date: 2020/8/28* Desc: mqtt初始化,心跳相關*/ public class Looper {private static class LooperHolder {static final Looper INSTANCE = new Looper();}public static Looper get() {return Looper.LooperHolder.INSTANCE;}private Looper() {//啟動mqttDlcMqttConnectOptions mqttOption = new DlcMqttConnectOptions(App.sInstance, "tcp://120.77.72.190:18", "dlc", "123456", App.deviceId);mqttOption.setAutoReconnect(true);MqttManager.get().init(App.sInstance, mqttOption, new DLCMqttCallBack());MqttManager.get().subscribe(new String[]{"xmshzthg_toapk/" + App.deviceId, "xmshzthg_toapk/common"}, new int[]{0, 0});}@SuppressLint("CheckResult")public void looper() {Observable.interval(2, 30, TimeUnit.SECONDS).observeOn(AndroidSchedulers.mainThread()).subscribe(new Consumer<Long>() {@Overridepublic void accept(Long aLong) {HeartbeatBean heartBean = App.heartBeatData;if (heartBean == null) {LogPlus.i("心跳數據為空,不做心跳上傳");return;}heartBean.timestamp = getTime();heartBean.macno = App.deviceId;LogPlus.i("lgq", "溫度--c111-上傳心跳- ");MqttManager.get().publish("xmshzthg_toback/" + App.deviceId, 0, heartBean);//todo 待驗證,防止開始有心跳后來沒心跳的情況,一直發送發送上一次的數據,導致異常在線狀態的出現}});}public String getTime() {long time = System.currentTimeMillis() / 1000;//獲取系統時間的10位的時間戳String str = String.valueOf(time);return str;}}

?

demo下載鏈接:?https://download.csdn.net/download/meixi_android/12767464

云盤下載:https://pan.baidu.com/s/1Nl9aQW-l3SxSlwWdd60uew

在線bug交流:扣扣1085220040?

總結

以上是生活随笔為你收集整理的Android 使用mqtt实例,包括接收服务器推送以及上传数据到服务器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。