| | |
| | | package com.dayu.pipirrapp.net; |
| | | |
| | | import android.content.Context; |
| | | import android.content.pm.PackageInfo; |
| | | import android.content.pm.PackageManager; |
| | | import android.util.Log; |
| | | |
| | | import androidx.lifecycle.LifecycleOwner; |
| | |
| | | import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence; |
| | | |
| | | import java.util.HashMap; |
| | | import java.util.UUID; |
| | | import java.util.concurrent.ExecutorService; |
| | | import java.util.concurrent.Executors; |
| | | |
| | |
| | | |
| | | // private static final String MQTT_BROKER_URL = "tcp://115.236.153.170:30764"; // 修改为你的 broker 地址 |
| | | private static final String MQTT_BROKER_URL = "tcp://192.168.10.52:1883"; |
| | | private static final String CLIENT_ID = "mqttx_a7a9fe73"; |
| | | private String CLIENT_ID = "mqttx_a7a9fe73"; |
| | | private static final String TOPIC = "workOrder"; // 订阅的主题 |
| | | |
| | | private MqttClient mqttClient; |
| | |
| | | boolean isHasNet = true; |
| | | //是否连接成功过一次,没有的话联网后重连 |
| | | boolean isConnet = false; |
| | | private ExecutorService executorService = Executors.newSingleThreadExecutor(); |
| | | private final ExecutorService executorService = Executors.newSingleThreadExecutor(); |
| | | |
| | | public MqttManager(Context context, LifecycleOwner lifecycleOwner) { |
| | | try { |
| | | PackageManager manager = context.getPackageManager(); |
| | | PackageInfo info = null; |
| | | try { |
| | | info = manager.getPackageInfo(context.getPackageName(), 0); |
| | | } catch (PackageManager.NameNotFoundException e) { |
| | | throw new RuntimeException(e); |
| | | } |
| | | CLIENT_ID = context.getPackageName() + UUID.randomUUID().toString().replace("-", "") + "_" + info; |
| | | mqttClient = new MqttClient(MQTT_BROKER_URL, CLIENT_ID, new MemoryPersistence()); |
| | | connectOptions = new MqttConnectOptions(); |
| | | connectOptions.setUserName("mqtt_yjy"); |
| | |
| | | // 在子线程收到消息时的处理逻辑 |
| | | Log.d("MqttManager", "subscribe收到消息:" + new String(message.getPayload())); |
| | | //传递MQ收到的信息 |
| | | HashMap<String, Object> data= MyJsonParser.getMapFromJson(new String(message.getPayload())); |
| | | HashMap<String, Object> data = MyJsonParser.getMapFromJson(new String(message.getPayload())); |
| | | //判断是否是当前用户 |
| | | if (data.get("inspectorId").equals(MyApplication.myApplication.userId)){ |
| | | LiveEventBus.get(CommonKeyName.MQTTData).post(message.getPayload()); |
| | | if (data.get("inspectorId").equals(MyApplication.myApplication.userId)) { |
| | | LiveEventBus.get(CommonKeyName.MQTTData).post(data.get("workOrderId")); |
| | | } |
| | | }); |
| | | |