apollo 安装以及测试MQTT工具客户端的连接

下载apollo 解压后放在C盘

执行cd/d C:\apache-apollo-1.7.1\bin

文件夹中多了mybroker。

进入 mybroker\bin\ 目录,在CMD输入命令:

cd C:\apache-apollo-1.7.1\bin\mybroker\bin

apollo-broker.cmd run

 

 

 后台登录接口:https://127.0.0.1:61681/或http://127.0.0.1:61680/

 

账号admin

密码password

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Mqttbox

 

 

 

 

 

 

 

 

Mqttlens

 

 

MQTT.fx

 

账号密码是apollo的账号密码

 

package com.litian.iot.ammeter.mqtt;

import com.litian.iot.ammeter.model.Ammeter;
import org.eclipse.paho.client.mqttv3.*;
import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;

/**
 * ServerMQTT class
 *
 * @author 孙林业 @Description: 服务器向多个客户端推送主题,即不同客户端可向服务端订阅相同的主题
 * @date 2019/3/28
 */
public class ServerMQTT {
  // tcp://MQTT安装的服务器地址:MQTT定义的端口号
  public static final String HOST = "tcp://127.0.0.1:61613";
  // 定义一个主题
  public static final String TOPIC = "mytopic";
  // 定义MQTT的ID,可以在MQTT服务配置中指定
  private static final String clientid = "server11";

  private MqttClient client;
  private MqttTopic topic11;
  private String userName = "admin";
  private String passWord = "password";

  private MqttMessage message;

  /** @throws */
  public ServerMQTT() throws MqttException {
    // MemoryPersistence设置clientid的保存形式,默认为以内存保存
    client = new MqttClient(HOST, clientid, new MemoryPersistence());
    connect();
  }

  /** 用来连接服务器 */
  private void connect() {
    MqttConnectOptions options = new MqttConnectOptions();
    options.setCleanSession(false);
    options.setUserName(userName);
    options.setPassword(passWord.toCharArray());
    // 设置超时时间
    options.setConnectionTimeout(10);
    // 设置会话心跳时间
    options.setKeepAliveInterval(20);
    try {
      client.setCallback(new PushCallback());
      client.connect(options);

      topic11 = client.getTopic(TOPIC);
    } catch (Exception e) {
      e.printStackTrace();
    }
  }

  /**
   * @param topic
   * @param message
   */
  public void publish(MqttTopic topic, MqttMessage message) throws MqttException {
    MqttDeliveryToken token = topic.publish(message);
    token.waitForCompletion();
    System.out.println("message is published completely! " + token.isComplete());
  }

  /**
   * 启动入口
   *
   * @param args
   */
  public static void main(String[] args) throws MqttException {
    ServerMQTT server = new ServerMQTT();

    Ammeter ammeter =
        new Ammeter(
            17.83,
            2.67,
            0.0,
            0.05,
            103.9,
            103.9,
            0.0,
            0.314,
            0.0,
            0.314,
            0.053,
            0.0274,
            0.0,
            0.0254,
            -0.0012,
            0.0146,
            0.0,
            -0.0158,
            100.0,
            87.7,
            100.0,
            84.9,
            0.0,
            0.0,
            300.1,
            25.3,
            0.0,
            205.1,
            0.0,
            1547691840,
            0.0,
            1547691840,
            0.0,
            1547691840,
            0.0,
            1547691840,
            0.0,
            1547691840,
            16.5802,
            3.5872,
            4.4641,
            4.3115,
            4.2174);

    System.out.println(ammeter.toJSONString());

    server.message = new MqttMessage();
    server.message.setQos(1);
    server.message.setRetained(true);
    server.message.setPayload(ammeter.toJSONString().getBytes());
    server.publish(server.topic11, server.message);
    System.out.println(server.message.isRetained() + "------ratained状态");
  }
}

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值