zoukankan      html  css  js  c++  java
  • 物联网消息队列协议MQTT


    简介
    Mqtt是一个物联网消息传输协议

    mosquitto是mqtt协议的一个开源实现,http://mosquitto.org/

    paho是mqtt协议的客户端实现,这里主要用paho的mqtt java客户端jar包。

    http://wiki.eclipse.org/Paho

    只需要在pom.xml中增加:

    <dependency>
      <groupId>org.eclipse.paho</groupId>
      <artifactId>org.eclipse.paho.client.mqttv3</artifactId>
      <version>1.0.2</version>
    </dependency>


    mosquitto可以理解为mutt协议的server端,可部署在linux及windows上

    CentOS的安装过程:

    参照官网文档,在yum的repo配置中增加:

    [home_oojah_mqtt]
    name=mqtt (CentOS_CentOS-6)
    type=rpm-md
    baseurl=http://download.opensuse.org/repositories/home:/oojah:/mqtt/CentOS_CentOS-6/
    gpgcheck=1
    gpgkey=http://download.opensuse.org/repositories/home:/oojah:/mqtt/CentOS_CentOS-6//repodata/repomd.xml.key
    enabled=1


    mosquitto的配置文件项可参考:http://blog.csdn.net/shagoo/article/details/7910598

    集群部署 参照http://www.cnblogs.com/yinyi521/p/6087215.html

    然后执行:
    yum install mosquitto
    yum install mosquitto-client

    启动mosquitto服务:

    mosquitto -v

    mqtt java客户端实例:

    package com.haibran.mqtt_demo;
    
    import org.eclipse.paho.client.mqttv3.MqttClient;
    import org.eclipse.paho.client.mqttv3.MqttConnectOptions;
    import org.eclipse.paho.client.mqttv3.MqttException;
    import org.eclipse.paho.client.mqttv3.MqttMessage;
    import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;
    
    public class MqttPublicSample {
    
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    String topic = "sensor";
    String content = "Message from MqttPublishSample";
    int qos = 2;
    String broker = "tcp://192.168.0.20:1883";
    String clientId = "JavaSample";
    MemoryPersistence persistence = new MemoryPersistence();
    
    try {
    MqttClient sampleClient = new MqttClient(broker, clientId, persistence);
    MqttConnectOptions connOpts = new MqttConnectOptions();
    connOpts.setCleanSession(true);
    System.out.println("Connecting to broker: "+broker);
    sampleClient.connect(connOpts);
    System.out.println("Connected");
    System.out.println("Publishing message: "+content);
    MqttMessage message = new MqttMessage(content.getBytes());
    message.setQos(qos);
    sampleClient.publish(topic, message);
    System.out.println("Message published");
    sampleClient.disconnect();
    System.out.println("Disconnected");
    System.exit(0);
    } catch(MqttException me) {
    System.out.println("reason "+me.getReasonCode());
    System.out.println("msg "+me.getMessage());
    System.out.println("loc "+me.getLocalizedMessage());
    System.out.println("cause "+me.getCause());
    System.out.println("excep "+me);
    me.printStackTrace();
    }
    }
    
    }
  • 相关阅读:
    SQLServer 事物与索引
    SQLServer 常见SQL笔试题之语句操作题详解
    测试思想-测试设计 测试用例设计之边界值分析方法
    测试思想-测试设计 测试用例设计之等价类划分方法
    测试思想-测试设计 测试用例设计之因果图方法
    测试思想-测试设计 测试用例设计之判定表驱动分析方法
    MySql 缓存查询原理与缓存监控 和 索引监控
    测试思想-测试设计 授客细说场景测试用例设计与实践
    产品相关 细说软件产品和业务 & 业务过程(流程) & 业务逻辑
    Postman Postman接口测试工具使用简介
  • 原文地址:https://www.cnblogs.com/wangxiaowei/p/7778218.html
Copyright © 2011-2022 走看看