转:EMQTT测试--安装与测试 (windows)
2024-09-01 06:03:04
我下载的是windows版
安装
参考
http://emqtt.com/docs/install.html
将下载的压缩包解压,我解压到了D盘
命令行窗口,cd到程序目录
控制台模式启动:
.\bin\emqttd console
报错如下
无法启动此程序,因为计算机中丢失 MSVCR120.dll。尝试重新安装该程序以解决次问题。
找一个MSVCR120.dll文件,可以去网上下载,也可以在自己电脑上找
HBuilder下有
mqttfx下也有
XMind下也有
IDEA下也有
我拷贝一个mqttfx下的到Windows\System32下
然后重新执行
.\bin\emqttd console
启动成功
登录
用户名为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()));
}
}
结果
控制台显示
两个连接
参考文献
--------------------- 本文来自 GW_Cheng 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/frankcheng5143/article/details/52045501?utm_source=copy
最新文章
- 解决ubuntu eclipse中 Android SDK Manager 图标不见的方法
- LoadRunner常用事务判断
- 在 NetBeans IDE 6.0 中分析 Java 应用程序性能
- StudyFoxCMS-6
- Ajax 核心函数
- Educational Codeforces Round 7 E. Ants in Leaves 贪心
- 杭电ACM2011--	多项式求和
- 客户端javascript笔记
- I P 127.X.X.X 和 0.0.0.0
- android activity 后的形式 藏
- 泛型的 typeof
- C# 中的线程安全集合类
- 版本控制工具——Git常用操作(上)
- jquery日常使用总结
- ubuntu 安装Mysql8.0
- [转]Linux下网络常用命令和工具
- 10-(基础入门篇)MQTT介绍
- MySQL--查看内存信息
- FPGA之初认识
- Git仓库初始化与推送到远端仓库
热门文章
- 欧拉图和欧拉圈-Play On Words(UVa10129)
- ZOJ 3380 Patchouli&#39;s Spell Cards
- hdu6058
- shell 查看 具体某行的值
- jvm内存参数配置
- ldr与adr的区别
- GIS空间参考及坐标转换
- mysql 初始化报错 /usr/local/mysql/bin/mysqld:error while loading shared libraries :libaio.so.1
- ubuntu查看系统版本
- Linux 动态库 静态库