`
zibingyu
  • 浏览: 15365 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

apollo mqtt client instance

阅读更多
package com.intbull.mqtt.client;

import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JEditorPane;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextArea;

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;

public class Server extends JFrame {
    private static final long serialVersionUID = 1L;
    private JPanel panelNorth, panelSouth;
    private JButton button, buttonSend;
    private JEditorPane editUserName, editPassword, editTopic, editPublish, editMessage;
    private JTextArea area;
    private MqttClient client;
    private String host = "tcp://127.0.0.1:61613";
//    private String host = "tcp://localhost:1883";

    public Server() {
        Container container = this.getContentPane();
        panelNorth = new JPanel();
        button = new JButton("连接&绑定主题");
        button.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent ae) {
            connect(editUserName.getText(), editPassword.getText(), editTopic.getText());
            }
        });
        panelNorth.add(button);
       
        editUserName = new JEditorPane();
        editUserName.setText("用户名");
        panelNorth.add(editUserName);
       
        editPassword = new JEditorPane();
        editPassword.setText("密码");
        panelNorth.add(editPassword);

        editTopic = new JEditorPane();
        editTopic.setText("订阅主题");
        panelNorth.add(editTopic);
       
        editPublish = new JEditorPane();
        editPublish.setText("发布主题");
        panelNorth.add(editPublish);
       
        container.add(panelNorth, "North");

        panelSouth = new JPanel();
        editMessage = new JEditorPane();
        buttonSend = new JButton("发送");
        buttonSend.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent ae) {
                try {
               
                String content = editMessage.getText();
                if(content!=null){
                MqttTopic topic = client.getTopic(editPublish.getText());
               
                MqttMessage message = new MqttMessage();
                message.setQos(1);
                message.setRetained(true);
                System.out.println(message.isRetained()+"------ratained状态");
                message.setPayload(content.getBytes());
                MqttDeliveryToken token = topic.publish(message);
                token.waitForCompletion();
                System.out.println(token.isComplete()+"========");
                }
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
        panelSouth.add(editMessage);
        panelSouth.add(buttonSend);
        container.add(panelSouth,"South");

       
        area = new JTextArea();
        area.setText("record");
        container.add(area,"Center");

    }

    private void connect(String userName, String passWord, String topic) {

        MqttConnectOptions options = new MqttConnectOptions();
        options.setCleanSession(false);
        options.setUserName(userName);
        options.setPassword(passWord.toCharArray());
        // 设置超时时间
        options.setConnectionTimeout(10);
        // 设置会话心跳时间
        options.setKeepAliveInterval(20);
        try {
        client = new MqttClient(host, userName,
                     new MemoryPersistence());
            client.setCallback(new MqttCallback() {

                @Override
                public void connectionLost(Throwable cause) {
                    System.out.println("connectionLost-----------");
                    area.append("\nconnectionLost-----------");
                }

                @Override
                public void deliveryComplete(IMqttDeliveryToken token) {
                    System.out.println("deliveryComplete---------"+token.isComplete());
                    area.append("\ndeliveryComplete---------"+token.isComplete());
                }

                @Override
                public void messageArrived(String topic, MqttMessage arg1)
                        throws Exception {
                    System.out.println("messageArrived----------"+topic+"----------"+arg1.toString());
                    area.append("\nmessageArrived----------"+topic+"----------"+arg1.toString());
                }
            });
           
            client.connect(options);
            client.subscribe(topic, 1);
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

    public static void main(String[] args) {
        Server s = new Server();
        s.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        s.setSize(600, 370);
        s.setLocationRelativeTo(null);
        s.setVisible(true);
    }
}
分享到:
评论

相关推荐

    Kepware IOT gateway使用教程 - MQTT Client

    3. **配置连接参数**:在 MQTT Client 的配置界面,将服务器地址粘贴到 "URL" 字段,设置 MQTT 通道的 "topic",根据需求自定义。"Qos"(Quality of Service)是消息服务质量,通常有三个等级:0、1 和 2,这里推荐...

    apollo-mqtt服务器搭建

    将Apollo与MQTT结合,可以构建一个支持MQTT协议的服务器,便于设备和应用程序之间的数据交换。 在搭建Apollo MQTT服务器的过程中,首先你需要下载并安装Apache Apollo 1.7.1版本。可以从Apache官方网站或提供的...

    apollo+mqtt.jar

    Apollo 和 MQTT 在 Android 中的应用及 MQTT 服务器搭建详解 Apollo 是一个开源的消息中间件,它提供了高可用、高性能的消息传递服务。在 Android 开发中,为了实现消息推送功能,我们可以结合 Apollo 和 MQTT...

    【实验四】C# Winform客户端实现M2Mqtt连接Apollo MQTT服务器

    C#语言,编写MQTT客户端,连接到实验3的MQTT服务器上,发布一个主题,并且订阅主题。

    apollo-mqtt-1.7-javadoc.jar

    标签:apollo-mqtt-1.7-javadoc.jar,apollo,mqtt,1.7,javadoc,jar包下载,依赖包

    apollo-mqtt-1.5.jar

    标签:apollo-mqtt-1.5.jar,apollo,mqtt,1.5,jar包下载,依赖包

    阿波罗(APOLLO)公司的MQTT源码

    **阿波罗(APOLLO)公司的MQTT源码解析** 阿波罗(Apollo)是Apache软件基金会的一个项目,它提供了一个高性能、可扩展且易于使用的消息中间件,支持多种协议,其中包括MQTT(Message Queuing Telemetry Transport)。...

    mqtt + webScoket + apollo 具体示例

    在Java环境中,你可以使用Paho MQTT Client库来实现MQTT服务端和客户端。服务端负责接收和分发消息,客户端则可以订阅感兴趣的主题,接收并处理来自服务器的消息。在压缩包中的“mqtt具体实例”文件中,你可以找到...

    MQTT在windows上面环境部署与连接测试(包括C#写的demo)

    公司一个物联网项目,需要使用MQTT消息队列接收和转发实时数据,压缩包里包含:1、apache-apollo-1.7.1-windows-distro.zip 2、Apollo MQTT在windows上面环境部署与连接测试.docx 3、mqttfx-1.7.1-windows-x64.exe 4...

    这是一个适用于携程Apollo统一配置中心的Apollo客户端,基于C++实现-Apollo-Client.zip

    这个压缩包“Apollo-Client.zip”包含了基于C++实现的Apollo客户端源码,名为“Apollo-Client-master”,是开发人员用于与Apollo服务端进行交互的重要组件。 在深入理解Apollo客户端之前,我们先了解一下Apollo配置...

    Windows搭建Apollo MQTT服务器

    1.下载 Java JDK 安装包 ( apollo 依赖 Java 环境) ...2.安装 java JDK 安装完后设置JAVA_HOME环境变量...4.解压 apollo 安装包(免安装,自己选择路径,我这边使用D:\MQTT)  这里需要注意了,解压 apache-apollo-1.

    Apollo服务器及MQTT功能实现源码

    Apollo服务器和MQTT功能的实现源码涉及到两个关键的组件:Apache Apollo以及MQTT协议。首先,让我们深入了解这两个概念。 Apache Apollo是Atlassian公司开发的一个开源消息中间件,它是基于ActiveMQ项目发展起来的...

    利用apache-apollo-1.7.1创建MQTT broker和服务器测试代码

    1、利用apache-apollo-1.7.1创建MQTT broker 2、利用eclipse编写MQTT Server的JAVA代码 3、能够订阅(接收)和发布(发送)消息,带接收消息回显 4、该代码同时也可以作为客户端,只须做小小改动

    apollo-client0.11.0-CSDN下载

    <groupId>com.ctrip.framework.apollo</groupId> <artifactId>apollo-client <version>0.11.0 </dependency>

    Apache apollo服务器测试mqtt消息Windows版

    【Apache Apollo服务器与MQTT消息测试】 Apache Apollo是一款高性能、可扩展的消息中间件,它基于ActiveMQ项目并针对企业级消息传递进行了优化。在本文中,我们将深入探讨如何在Windows环境下利用Apollo服务器来...

    apollo-client0.9.1

    <groupId>com.ctrip.framework.apollo</groupId> <artifactId>apollo-client <version>0.9.1 </dependency>

    apache-apollo-1_mqtt_MQTT测试

    Apollo支持多种消息协议,其中MQTT(Message Queuing Telemetry Transport)是一种轻量级的发布/订阅式消息协议,常用于物联网(IoT)场景,因为它具有低带宽、低功耗和对网络条件要求不高的特点。 Apache Apollo整合...

    apollo-mqtt-1.7.jar

    标签:apollo-mqtt-1.7.jar,apollo,mqtt,1.7,jar包下载,依赖包

    apache_apollo_1.7.1.zip

    Apache Apollo是一个代理服务器,其是在ActiveMQ基础上发展而来的,可以支持STOMP, AMQP, MQTT, Openwire, SSL, and WebSockets 等多种协议。 Apollo允许客户端通过开放的MQTT协议连接。该协议主要是用在资源有限的...

    apollo-mqtt-1.6-scaladoc.jar

    标签:apollo-mqtt-1.6-scaladoc.jar,apollo,mqtt,1.6,scaladoc,jar包下载,依赖包

Global site tag (gtag.js) - Google Analytics