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();
    }
    }
    
    }
  • 相关阅读:
    PostgreSQL 慢查询SQL语句跟踪
    unity WheelCollider调整
    C# 事件event
    C# 委托
    C4D导入fbx到Unity设置
    3DMAX导出fbx到unity设置
    unity 单面模型shader
    对数平均数
    GameObject:activeInHierarchy、activeSelf Behaviour:enabled
    unity Time.deltaTime
  • 原文地址:https://www.cnblogs.com/wangxiaowei/p/7778218.html
Copyright © 2011-2022 走看看