• mqtt压力测试工具emqtt


    转自:https://blog.csdn.net/vicky_lov/article/details/84585252

    1.emqtt下载地址:http://emqtt.com/downloads,找到自己要下载的版本信息,注意开发版、稳定版;

    2.下载后放到硬盘根目录,进入下载路径目录,cmd进入dos窗口,如下图:

    3.输入.inemqttd consloe,之后弹出启动状态页面,代表启动成功;

    4.登录:地址 :http://localhost:18083/ 

                  用户名为:admin   密码为:public

    登录上去就可以看服务器的运行状态了。

    测试
    依赖 

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

    Server

    package com.mymqtt.myemqtt;
     
    import java.util.Scanner;
     
    import org.eclipse.paho.client.mqttv3.MqttClient;
    import org.eclipse.paho.client.mqttv3.MqttConnectOptions;
    import org.eclipse.paho.client.mqttv3.MqttMessage;
     
    public class Server {
     
        public static void main(String[] args) throws Exception {
            String host = "tcp://127.0.0.1:1883";
            String topic = "hello";
            String clientId = "server";// clientId不能重复
            MqttConnectOptions options = new MqttConnectOptions();
            options.setCleanSession(true);
     
            MqttClient client = new MqttClient(host, clientId);
            client.connect(options);
     
            MqttMessage message = new MqttMessage();
     
            @SuppressWarnings("resource")
            Scanner scanner = new Scanner(System.in);
            System.out.println("请输入要发送的内容:");
            while (true) {
                String line = scanner.nextLine();
                message.setPayload(line.getBytes());
                client.publish(topic, message);
            }
     
        }
    }

    Client

    package com.mymqtt.myemqtt;
     
    import org.eclipse.paho.client.mqttv3.MqttClient;
    import org.eclipse.paho.client.mqttv3.MqttConnectOptions;
     
    public class Client {
     
        public static void main(String[] args) throws Exception {
     
            String host = "tcp://127.0.0.1:1883";
            String topic = "hello";
            String clientId = "12345";// clientId不能重复
            // 1.设置mqtt连接属性
            MqttConnectOptions options = new MqttConnectOptions();
            options.setCleanSession(true);
            // 2.实例化mqtt客户端
            MqttClient client = new MqttClient(host, clientId);
            // 3.连接
            client.connect(options);
     
            client.setCallback(new PushCallback());
            while (true) {
                client.subscribe(topic, 2);
            }
            // client.disconnect();
        }
    }

    PushCallback

    package com.mymqtt.myemqtt;
     
    import java.util.Date;
     
    import org.eclipse.paho.client.mqttv3.IMqttDeliveryToken;
    import org.eclipse.paho.client.mqttv3.MqttCallback;
    import org.eclipse.paho.client.mqttv3.MqttMessage;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
     
    public class PushCallback implements MqttCallback {
        private final Logger logger = LoggerFactory.getLogger(this.getClass());
     
        public void connectionLost(Throwable cause) {
            // 连接丢失后,一般在这里面进行重连
            System.out.println("连接断开,可以做重连");
            logger.info("掉线时间:{}", new Date());
        }
     
        public void deliveryComplete(IMqttDeliveryToken token) {
            System.out.println("deliveryComplete---------" + token.isComplete());
        }
     
        public void messageArrived(String topic, MqttMessage message) throws Exception {
            // subscribe后得到的消息会执行到这里面
            // System.out.println(message);
            System.out.println("接收消息主题 : " + topic);
            System.out.println("接收消息Qos : " + message.getQos());
            System.out.println("接收消息内容 : " + new String(message.getPayload()));
        }
     
    }

    结果:

    控制台显示

    两个连接

    è¿éåå¾çæè¿°

    参考资料:http://emqtt.com/

  • 相关阅读:
    Android_EditText 密码框默认是小圆点 怎么改成其它的(*)?
    Android_view的生命周期
    Android_对android虚拟机的理解,包括内存管理机制垃圾回收机制。dalvik和art区别
    Android_触摸事件传递机制
    Android_OnLowMemory和OnTrimMemory
    Android_ FragmentTabHost切换Fragment时避免重复加载UI
    位运算&字节运算
    C#编程简短总结
    IOS随机随学
    计算机图形学
  • 原文地址:https://www.cnblogs.com/mycftest/p/13889281.html
Copyright © 2020-2023  润新知