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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

mqtt连接失败_Flutter通过Mqtt消费ActivieMQ

發布時間:2024/9/19 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mqtt连接失败_Flutter通过Mqtt消费ActivieMQ 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Flutter通過mqtt消費activemq,在android端主要使用插件的方式進行

處理流程

Android端連接MQTT

插件端業務處理

step1:配置插件依賴包

  • implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
  • implementation 'com.google.code.gson:gson:2.8.5'
  • implementation 'org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.1.0'
  • implementation 'org.eclipse.paho:org.eclipse.paho.android.service:1.1.1'
  • implementation 'androidx.legacy:legacy-support-v4:1.0.0'
  • implementation 'androidx.appcompat:appcompat:1.1.0-rc01'
  • implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
  • implementation 'androidx.recyclerview:recyclerview:1.0.0'
  • implementation 'androidx.multidex:multidex:2.0.1'
  • implementation 'androidx.multidex:multidex-instrumentation:2.0.0'
  • implementation 'com.google.android.material:material:1.1.0-alpha08'
  • step2 實現連接方法

  • class MqttClientPlugin : MethodCallHandler {
  • override fun onMethodCall(call: MethodCall, result: Result) {
  • when (call.method) {
  • "connectMq" -> {
  • try {
  • connectToService()
  • result.success(true)
  • } catch (e: Exception) {
  • e.printStackTrace()
  • result.success(false)
  • }
  • }
  • }
  • }
  • private fun connectToService() {
  • val intent = Intent(context, MqttClientService::class.java)
  • this.context?.startService(intent)
  • }
  • }
  • step3 實現mqttclient服務

  • class MqTTClientService : Service {
  • private val TAG = "ActiveMQ"
  • val clientId = "any_client_name"
  • val serverURI = "tcp://192.168.0.201:1883" //replace with your ip
  • val publishTopic = "outbox"
  • val subscribeTopic = "TJ Test"
  • var client: MqttAndroidClient? = null
  • constructor() : super()
  • val MY_ACTION = "MY_ACTION"
  • var _currentV: Int = 0
  • override fun onBind(intent: Intent?): IBinder? {
  • return null
  • }
  • override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
  • val myThread = MyThrad()
  • myThread.start()
  • return super.onStartCommand(intent, flags, startId)
  • }
  • private fun subscribe() {
  • try {
  • client?.subscribe(subscribeTopic, 0, IMqttMessageListener { topic, message ->
  • Log.i("接收到監聽的消息:", "${message.payload}")
  • })
  • } catch (e: MqttException) {
  • e.printStackTrace()
  • }
  • }
  • inner class MyThrad : Thread() {
  • override fun run() {
  • val connectOptions = MqttConnectOptions()
  • connectOptions.isAutomaticReconnect = true
  • client = MqttAndroidClient(this@MqTTClientService.applicationContext, serverURI, clientId)
  • try {
  • client?.connect(connectOptions, object : IMqttActionListener {
  • override fun onSuccess(asyncActionToken: IMqttToken) {
  • subscribe()
  • }
  • override fun onFailure(asyncActionToken: IMqttToken, e: Throwable) {
  • Log.i("連接錯誤:", "${e.message}")
  • }
  • })
  • } catch (e: MqttException) {
  • e.printStackTrace()
  • }
  • }
  • private fun subscribe() {
  • try {
  • client?.subscribe(subscribeTopic, 0) { topic, message ->
  • //通過廣播發送監聽到的消息
  • val intent = Intent()
  • intent.action = MY_ACTION
  • intent.putExtra("DATAPASSED", message.toString())
  • sendBroadcast(intent)
  • }
  • } catch (e: MqttException) {
  • e.printStackTrace()
  • }
  • }
  • }
  • }
  • step4監聽廣播

  • class DevicemanagerPlugin : MethodCallHandler {
  • constructor(context: Context?, channel: MethodChannel) {
  • this.context = context
  • this.channel = channel
  • initMqtt()
  • register()
  • }
  • private fun register() {
  • myReceiver = MyReceiver()
  • val intentFilter = IntentFilter()
  • intentFilter.addAction("MY_ACTION")
  • this.context?.registerReceiver(myReceiver, intentFilter)
  • }
  • inner class MyReceiver : BroadcastReceiver() {
  • override fun onReceive(context: Context?, intent: Intent?) {
  • try {
  • val value = intent?.getStringExtra("DATAPASSED")
  • //將監聽到的消息,通過methchannel傳給flutter
  • channel?.invokeMethod("receiveMsg", value)
  • } catch (e: Exception) {
  • e.printStackTrace()
  • }
  • }
  • }
  • }
  • Flutter端業務處理

    實現receiveMsg方法

  • const channel = const MethodChannel("mqttclient");
  • class _MyHomePageState extends State<MyHomePage> {
  • @override
  • void initState() {
  • registerMethod()
  • connectActiveMq()
  • }
  • void connectActiveMq() async{
  • if (Platform.isAndroid) {
  • var result = await Devicemanager.connectMq(API.MQ_URI);
  • if (result) {
  • print("mq鏈接成功");
  • } else {
  • print("mq鏈接失敗");
  • }
  • }
  • }
  • void registerMethod() {
  • channel.setMethodCallHandler((handler) {
  • var completer = new Completer<String>();
  • try {
  • switch (handler.method) {
  • case "receiveMsg":
  • //接收到的消息
  • var v = handler.arguments;
  • break;
  • default:
  • break;
  • }
  • } catch (e) {
  • print(e);
  • }
  • return completer.future;
  • });
  • }
  • }
  • 總結

    以上是生活随笔為你收集整理的mqtt连接失败_Flutter通过Mqtt消费ActivieMQ的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    主站蜘蛛池模板: 久久国产乱子伦免费精品 | 欧美午夜性春猛交 | 久久久久久久久艹 | 久久99国产精品久久99 | 日韩影音| 久久久噜噜噜www成人网 | 欧美国产片 | 337p粉嫩大胆噜噜噜亚瑟影院 | 97一区二区三区 | 2019日韩中文字幕 | 国产精品一区二区三区免费在线观看 | 亚洲乱码国产乱码精品精软件 | 国产欧美精品一区 | 影音先锋人妻啪啪av资源网站 | 精品一区二区在线观看 | 天天艹日日干 | 日本三级小视频 | 国产精品一区久久久 | 国产欧美激情 | 日韩 欧美 | 桃色av网站| 少妇高潮灌满白浆毛片免费看 | 又污又黄又爽的网站 | 欧美一区二区三区久久综合 | 欧美第一视频 | 葵司一区二区 | 女人毛片视频 | 波多野结衣乳巨码无在线观看 | 日本一品道 | 91系列在线观看 | 国产乱子伦精品无码码专区 | 人妻少妇久久中文字幕 | 中文字幕第八页 | 日韩高清二区 | 中文字幕免费在线看线人动作大片 | 动漫精品一区一码二码三码四码 | 欧美日本高清 | 色在线综合| 韩日av在线播放 | 黄色xxxx| 国产又大又粗又硬 | 久久久涩 | 青苹果av| 日韩欧美国产高清 | 亚洲一区二区三区无码久久 | 女性喷水视频 | 欧美顶级黄色大片免费 | 91黄在线看 | 男女做爰猛烈刺激 | 欧美大片高清 | 黄网站免费大全入口 | 欧美一区欧美二区 | 日韩中文字幕久久 | 日韩国产高清在线 | 亚洲综合自拍 | 久久久精品中文字幕 | 手机在线免费观看av | 成人激情视频在线 | 男人天堂成人网 | 亚洲精品在线观看视频 | 人人综合网| 野外吮她的花蒂高h在线观看 | 成人激情综合 | 亚洲网站一区 | 欧美日韩在线一区二区 | 男人午夜免费视频 | 麻豆久久久久久久 | 亚洲高清一区二区三区 | 精品一区二区在线播放 | 丰满少妇被猛烈进入高清播放 | 无码国精品一区二区免费蜜桃 | 无套内谢少妇毛片 | 天堂免费在线视频 | 色啪网站 | 中文字幕永久在线观看 | 国产一级二级三级精品 | 麻豆视频传媒入口 | 精品蜜桃av| 久久伊人影视 | 国精品人妻无码一区二区三区喝尿 | 毛片内射久久久一区 | 91精品国产色综合久久不卡电影 | 91国产精品 | av电影一区二区三区 | 国产免费成人在线视频 | 美女久久久久久久久 | 日本少妇在线 | 伦伦影院午夜理伦片 | 变态 另类 国产 亚洲 | 香蕉视频在线免费 | 日韩乱码人妻无码中文字幕久久 | 99一区二区 | 百合sm惩罚室羞辱调教 | 中文字幕一区二区久久人妻 | 亚洲永久网站 | 亚洲精品影院在线 | 国内免费毛片 | 国产粉嫩呻吟一区二区三区 | 成年人免费在线视频 |