首页

安卓下调用MQtt实现消息推送

java

2020-6-30

package cn.tyys.mqttbroker.client;

import android.os.Handler;
import android.os.Message;
import android.util.Log;

import org.eclipse.paho.client.mqttv3.IMqttDeliveryToken;
import org.eclipse.paho.client.mqttv3.MqttCallback;
import org.eclipse.paho.client.mqttv3.MqttClient;
import org.eclipse.paho.client.mqttv3.MqttConnectOptions;
import org.eclipse.paho.client.mqttv3.MqttDeliveryToken;
import org.eclipse.paho.client.mqttv3.MqttException;
import org.eclipse.paho.client.mqttv3.MqttMessage;
import org.eclipse.paho.client.mqttv3.MqttTopic;
import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;

/**
 * Created by lhq on 2018/5/21.
 */

public class ApolloClient {

    private static String host;
    private static String userName = "admin";
    private static String passWord = "password";
    private static MqttClient client;
    private Handler handler;
    private static String send_topic ;
    private static String receive_topic ;


    public ApolloClient(Handler handler,String host,String send_topic,String receive_topic) {
        this.handler=handler;
        this.host=host;
        this.send_topic=send_topic;
        this.receive_topic=receive_topic;
    }

    public void createContent() throws MqttException {
        //host为主机名,test为clientid即连接MQTT的客户端ID,一般以客户端唯一标识符表示,
        //MemoryPersistence设置clientid的保存形式,默认为以内存保存
        client = new MqttClient(host, "client", new MemoryPersistence());
        MqttConnectOptions options = new MqttConnectOptions();
        //设置是否清空session,这里如果设置为false表示服务器会保留客户端的连接记录,
        //这里设置为true表示每次连接到服务器都以新的身份连接
        options.setCleanSession(true);
        //设置连接的用户名
        options.setUserName(userName);
        //设置连接的密码
        options.setPassword(passWord.toCharArray());
        // 设置超时时间 单位为秒
        options.setConnectionTimeout(10);
        // 设置会话心跳时间 单位为秒 服务器会每隔1.5*20秒的时间向客户端发送个消息判断客户端是否在线,但这个方法并没有重连的机制
        options.setKeepAliveInterval(20);
        //回调
        client.setCallback(new MqttCallback() {
            @Override
            public void connectionLost(Throwable cause) {
                // //连接丢失后,一般在这里面进行重连
                Log.d("lhq","connectionLost----------");

                Message obtainMessage = handler.obtainMessage();
                obtainMessage.what=0;
                obtainMessage.obj=cause.getMessage();
                handler.sendMessage(obtainMessage);
            }

            @Override
            public void messageArrived(String topic, MqttMessage message) throws Exception {
                //subscribe后得到的消息会执行到这里面
                Log.d("lhq","messageArrived----------");
                Log.d("lhq",topic "---" message.toString());

                Message obtainMessage = handler.obtainMessage();
                obtainMessage.what=1;
                obtainMessage.obj=message.toString();
                handler.sendMessage(obtainMessage);
            }

            @Override
            public void deliveryComplete(IMqttDeliveryToken token) {
                //publish后会执行到这里
                Log.d("lhq","deliveryComplete---------"  token.isComplete());

            }
        });
        //链接
        client.connect(options);
        //订阅
        client.subscribe(receive_topic, 1);
    }



    public void publish(String meg) throws MqttException {
        MqttTopic topic = client.getTopic(send_topic);
        MqttMessage message = new MqttMessage();
        message.setQos(1);
        message.setRetained(true);
        Log.d("lhq",message.isRetained() "------ratained状态");
        message.setPayload(meg.getBytes());
        MqttDeliveryToken token = topic.publish(message);
        token.waitForCompletion();
    }
}

资源下载此资源下载价格为3D币(VIP免费),请先
资源文件列表
MqttBroker/.gitignore , 127
MqttBroker/.gradle/4.1/fileChanges/last-build.bin , 1
MqttBroker/.gradle/4.1/fileContent/fileContent.lock , 17
MqttBroker/.gradle/4.1/fileHashes/fileHashes.bin , 536491
MqttBroker/.gradle/4.1/fileHashes/fileHashes.lock , 17
MqttBroker/.gradle/4.1/fileHashes/resourceHashesCache.bin , 22407
MqttBroker/.gradle/4.1/javaCompile/classAnalysis.bin , 2214875
MqttBroker/.gradle/4.1/javaCompile/jarAnalysis.bin , 963749
MqttBroker/.gradle/4.1/javaCompile/javaCompile.lock , 17
MqttBroker/.gradle/4.1/javaCompile/taskHistory.bin , 428770
MqttBroker/.gradle/4.1/javaCompile/taskJars.bin , 55152
MqttBroker/.gradle/4.1/taskHistory/fileSnapshots.bin , 5081587
MqttBroker/.gradle/4.1/taskHistory/taskHistory.bin , 147825
MqttBroker/.gradle/4.1/taskHistory/taskHistory.lock , 17
MqttBroker/.gradle/buildOutputCleanup/built.bin , 0
MqttBroker/.gradle/buildOutputCleanup/cache.properties , 51
MqttBroker/.gradle/buildOutputCleanup/cache.properties.lock , 2
MqttBroker/.idea/gradle.xml , 680
MqttBroker/.idea/libraries/android_arch_core_common_1_0_0_jar.xml , 533
MqttBroker/.idea/libraries/android_arch_core_common_1_1_0_jar.xml , 533
MqttBroker/.idea/libraries/android_arch_core_runtime_1_1_0.xml , 647
MqttBroker/.idea/libraries/android_arch_lifecycle_common_1_0_0_jar.xml , 548
MqttBroker/.idea/libraries/android_arch_lifecycle_common_1_1_0_jar.xml , 547
MqttBroker/.idea/libraries/android_arch_lifecycle_livedata_core_1_1_0.xml , 688
MqttBroker/.idea/libraries/android_arch_lifecycle_runtime_1_0_0.xml , 658
MqttBroker/.idea/libraries/android_arch_lifecycle_runtime_1_1_0.xml , 658
MqttBroker/.idea/libraries/android_arch_lifecycle_viewmodel_1_1_0.xml , 668
MqttBroker/.idea/libraries/commons_codec_commons_codec_1_10_jar.xml , 310
MqttBroker/.idea/libraries/com_android_support_animated_vector_drawable_26_1_0.xml , 742
MqttBroker/.idea/libraries/com_android_support_animated_vector_drawable_27_1_0.xml , 742
MqttBroker/.idea/libraries/com_android_support_appcompat_v7_26_1_0.xml , 682
MqttBroker/.idea/libraries/com_android_support_appcompat_v7_27_1_0.xml , 681
MqttBroker/.idea/libraries/com_android_support_constraint_constraint_layout_1_1_0.xml , 501
MqttBroker/.idea/libraries/com_android_support_constraint_constraint_layout_solver_1_1_0_jar.xml , 425
MqttBroker/.idea/libraries/com_android_support_recyclerview_v7_27_0_0.xml , 697
MqttBroker/.idea/libraries/com_android_support_support_annotations_26_1_0_jar.xml , 608
MqttBroker/.idea/libraries/com_android_support_support_annotations_27_1_0_jar.xml , 609
MqttBroker/.idea/libraries/com_android_support_support_annotations_27_1_1_jar.xml , 609
MqttBroker/.idea/libraries/com_android_support_support_compat_26_1_0.xml , 692
MqttBroker/.idea/libraries/com_android_support_support_compat_27_1_0.xml , 692
MqttBroker/.idea/libraries/com_android_support_support_core_ui_26_1_0.xml , 697
MqttBroker/.idea/libraries/com_android_support_support_core_ui_27_1_0.xml , 697
MqttBroker/.idea/libraries/com_android_support_support_core_utils_26_1_0.xml , 712
MqttBroker/.idea/libraries/com_android_support_support_core_utils_27_1_0.xml , 712
MqttBroker/.idea/libraries/com_android_support_support_fragment_26_1_0.xml , 702
MqttBroker/.idea/libraries/com_android_support_support_fragment_27_1_0.xml , 702
MqttBroker/.idea/libraries/com_android_support_support_media_compat_26_1_0.xml , 722
MqttBroker/.idea/libraries/com_android_support_support_v4_26_1_0.xml , 672
MqttBroker/.idea/libraries/com_android_support_support_vector_drawable_26_1_0.xml , 737
MqttBroker/.idea/libraries/com_android_support_support_vector_drawable_27_1_0.xml , 737
MqttBroker/.idea/libraries/com_android_support_test_espresso_espresso_core_3_0_2.xml , 710
MqttBroker/.idea/libraries/com_android_support_test_espresso_espresso_idling_resource_3_0_2.xml , 765
MqttBroker/.idea/libraries/com_android_support_test_monitor_1_0_2.xml , 662
MqttBroker/.idea/libraries/com_android_support_test_runner_1_0_2.xml , 657
MqttBroker/.idea/libraries/com_google_code_findbugs_jsr305_2_0_1_jar.xml , 359
MqttBroker/.idea/libraries/com_jakewharton_butterknife_8_8_1.xml , 664
MqttBroker/.idea/libraries/com_jakewharton_butterknife_annotations_8_8_1_jar.xml , 612
MqttBroker/.idea/libraries/com_squareup_javawriter_2_1_1_jar.xml , 538
MqttBroker/.idea/libraries/io_moquette_moquette_broker_0_8_1_jar.xml , 560
MqttBroker/.idea/libraries/io_moquette_moquette_netty_parser_0_8_1_jar.xml , 590
MqttBroker/.idea/libraries/io_moquette_moquette_parser_commons_0_8_1_jar.xml , 600
MqttBroker/.idea/libraries/io_netty_netty_buffer_4_0_33_Final_jar.xml , 571
MqttBroker/.idea/libraries/io_netty_netty_codec_4_0_33_Final_jar.xml , 566
MqttBroker/.idea/libraries/io_netty_netty_codec_http_4_0_33_Final_jar.xml , 591
MqttBroker/.idea/libraries/io_netty_netty_common_4_0_33_Final_jar.xml , 571
MqttBroker/.idea/libraries/io_netty_netty_handler_4_0_33_Final_jar.xml , 576
MqttBroker/.idea/libraries/io_netty_netty_transport_4_0_33_Final_jar.xml , 586
MqttBroker/.idea/libraries/javax_inject_javax_inject_1_jar.xml , 528
MqttBroker/.idea/libraries/junit_junit_4_12_jar.xml , 487
MqttBroker/.idea/libraries/log4j_log4j_1_2_17_jar.xml , 497
MqttBroker/.idea/libraries/net_sf_kxml_kxml2_2_3_0_jar.xml , 285
MqttBroker/.idea/libraries/org_eclipse_paho_org_eclipse_paho_android_service_1_1_1_jar.xml , 660
MqttBroker/.idea/libraries/org_eclipse_paho_org_eclipse_paho_client_mqttv3_1_1_0_jar.xml , 650
MqttBroker/.idea/libraries/org_greenrobot_eventbus_3_0_0_jar.xml , 534
MqttBroker/.idea/libraries/org_hamcrest_hamcrest_core_1_3_jar.xml , 543
MqttBroker/.idea/libraries/org_hamcrest_hamcrest_integration_1_3_jar.xml , 578
MqttBroker/.idea/libraries/org_hamcrest_hamcrest_library_1_3_jar.xml , 557
MqttBroker/.idea/libraries/org_hdrhistogram_HdrHistogram_2_1_4_jar.xml , 560
MqttBroker/.idea/libraries/org_mapdb_mapdb_1_0_8_jar.xml , 504
MqttBroker/.idea/libraries/org_slf4j_slf4j_api_1_7_5_jar.xml , 524
MqttBroker/.idea/libraries/org_slf4j_slf4j_log4j12_1_7_5_jar.xml , 544
MqttBroker/.idea/misc.xml , 1611
MqttBroker/.idea/modules.xml , 474
MqttBroker/.idea/runConfigurations.xml , 564
MqttBroker/.idea/workspace.xml , 259832
MqttBroker/app/.gitignore , 8
MqttBroker/app/app.iml , 12457
MqttBroker/app/build/generated/mockable-android-27.v3.jar , 2829140
MqttBroker/app/build/generated/source/buildConfig/androidTest/debug/cn/tyys/mqttbroker/test/BuildConfig.java , 453
MqttBroker/app/build/generated/source/buildConfig/debug/cn/tyys/mqttbroker/BuildConfig.java , 443
MqttBroker/app/build/generated/source/r/androidTest/debug/cn/tyys/mqttbroker/test/R.java , 614148
MqttBroker/app/build/generated/source/r/debug/android/arch/core/R.java , 247
MqttBroker/app/build/generated/source/r/debug/android/arch/lifecycle/livedata/core/R.java , 266
MqttBroker/app/build/generated/source/r/debug/android/arch/lifecycle/R.java , 252
MqttBroker/app/build/generated/source/r/debug/android/arch/lifecycle/viewmodel/R.java , 262
MqttBroker/app/build/generated/source/r/debug/android/support/compat/R.java , 8052
MqttBroker/app/build/generated/source/r/debug/android/support/constraint/R.java , 19029
MqttBroker/app/build/generated/source/r/debug/android/support/coreui/R.java , 10023
MqttBroker/app/build/generated/source/r/debug/android/support/coreutils/R.java , 8055
MqttBroker/app/build/generated/source/r/debug/android/support/fragment/R.java , 10025
MqttBroker/app/build/generated/source/r/debug/android/support/graphics/drawable/animated/R.java , 10043
MqttBroker/app/build/generated/source/r/debug/android/support/graphics/drawable/R.java , 8063
MqttBroker/app/build/generated/source/r/debug/android/support/v7/appcompat/R.java , 115824
MqttBroker/app/build/generated/source/r/debug/android/support/v7/recyclerview/R.java , 10251
MqttBroker/app/build/generated/source/r/debug/butterknife/R.java , 241
MqttBroker/app/build/generated/source/r/debug/cn/tyys/datebase/R.java , 114038
MqttBroker/app/build/generated/source/r/debug/cn/tyys/mqttbroker/R.java , 609353
MqttBroker/app/build/intermediates/blame/res/androidTest/debug/multi-v2/debug.json , 204684
MqttBroker/app/build/intermediates/blame/res/androidTest/debug/multi-v2/values-af.json , 1814
MqttBroker/app/build/intermediates/blame/res/androidTest/debug/multi-v2/values-am.json , 1811
MqttBroker/app/build/intermediates/blame/res/androidTest/debug/multi-v2/values-ar.json , 1815
MqttBroker/app/build/intermediates/blame/res/androidTest/debug/multi-v2/values-az.json , 1815
MqttBroker/app/build/intermediates/blame/res/androidTest/debug/multi-v2/values-b+sr+Latn.json , 1858
MqttBroker/app/build/intermediates/blame/res/androidTest/debug/multi-v2/values-be.json , 1815
MqttBroker/app/build/intermediates/blame/res/androidTest/debug/multi-v2/values-bg.json , 1815
MqttBroker/app/build/intermediates/blame/res/androidTest/debug/multi-v2/values-bn.json , 1817
MqttBroker/app/build/intermediates/blame/res/androidTest/debug/multi-v2/values-bs.json , 1816
MqttBroker/app/build/intermediates/blame/res/androidTest/debug/multi-v2/values-ca.json , 1816
MqttBroker/app/build/intermediates/blame/res/androidTest/debug/multi-v2/values-cs.json , 1815
MqttBroker/app/build/intermediates/blame/res/androidTest/debug/multi-v2/values-da.json , 1813
MqttBroker/app/build/intermediates/blame/res/androidTest/debug/multi-v2/values-de.json , 1815
MqttBroker/app/build/intermediates/blame/res/androidTest/debug/multi-v2/values-el.json , 1818
MqttBroker/app/build/intermediates/blame/res/androidTest/debug/multi-v2/values-en-rAU.json , 1837
MqttBroker/app/build/intermediates/blame/res/androidTest/debug/multi-v2/values-en-rCA.json , 1057
MqttBroker/app/build/intermediates/blame/res/androidTest/debug/multi-v2/values-en-rGB.json , 1837
MqttBroker/app/build/intermediates/blame/res/androidTest/debug/multi-v2/values-en-rIN.json , 1837
MqttBroker/app/build/intermediates/blame/res/androidTest/debug/multi-v2/values-en-rXC.json , 1076
MqttBroker/app/build/intermediates/blame/res/androidTest/debug/multi-v2/values-es-rUS.json , 1840
MqttBroker/app/build/intermediates/blame/res/androidTest/debug/multi-v2/values-es.json , 1816
MqttBroker/app/build/intermediates/blame/res/androidTest/debug/multi-v2/values-et.json , 1816
MqttBroker/app/build/intermediates/blame/res/androidTest/debug/multi-v2/values-eu.json , 1814
MqttBroker/app/build/intermediates/blame/res/androidTest/debug/multi-v2/values-fa.json , 1816
MqttBroker/app/build/intermediates/blame/res/androidTest/debug/multi-v2/values-fi.json , 1813
MqttBroker/app/build/intermediates/blame/res/androidTest/debug/multi-v2/values-fr-rCA.json , 1842
MqttBroker/app/build/intermediates/blame/res/androidTest/debug/multi-v2/values-fr.json , 1818
MqttBroker/app/build/intermediates/blame/res/androidTest/debug/multi-v2/values-gl.json , 1815
MqttBroker/app/build/intermediates/blame/res/androidTest/debug/multi-v2/values-gu.json , 1815
MqttBroker/app/build/intermediates/blame/res/androidTest/debug/multi-v2/values-h720dp-v13.json , 781
MqttBroker/app/build/intermediates/blame/res/androidTest/debug/multi-v2/values-hdpi-v4.json , 810
MqttBroker/app/build/intermediates/blame/res/androidTest/debug/multi-v2/values-hi.json , 1816
MqttBroker/app/build/intermediates/blame/res/androidTest/debug/multi-v2/values-hr.json , 1815
MqttBroker/app/build/intermediates/blame/res/androidTest/debug/multi-v2/values-hu.json , 1816
MqttBroker/app/build/intermediates/blame/res/androidTest/debug/multi-v2/values-hy.json , 1814
MqttBroker/app/build/intermediates/blame/res/androidTest/debug/multi-v2/values-in.json , 1816
MqttBroker/app/build/intermediates/blame/res/androidTest/debug/multi-v2/values-is.json , 1812
MqttBroker/app/build/intermediates/blame/res/androidTest/debug/multi-v2/values-it.json , 1814
MqttBroker/app/build/intermediates/blame/res/androidTest/debug/multi-v2/values-iw.json , 1812
MqttBroker/app/build/intermediates/blame/res/androidTest/debug/multi-v2/values-ja.json , 1809
MqttBroker/app/build/intermediates/blame/res/androidTest/debug/multi-v2/values-ka.json , 1815
MqttBroker/app/build/intermediates/blame/res/androidTest/debug/multi-v2/values-kk.json , 1814
MqttBroker/app/build/intermediates/blame/res/androidTest/debug/multi-v2/values-km.json , 1814
最多只能显示150条信息!
没有账号? 忘记密码?

社交账号快速登录