这几天,遇到了需要用到MQTT的时候,而且还需具备跨iP/跨机的,百度了很久都没有解决问题,后来还是自己联想到rabbitmq管理页面的特点才解决的,这个特点就是:http://127.0.0.1:15672/ 页面对应的账户有个默认的是guest,但http://192.本机ip:15672/ 没有这个默认的账户,需要建非guest的账户。
MQTT下载,到rabbitmq的官网,找到github源码,打包下载:
https://www.rabbitmq.com/web-mqtt.html
下载后找到priv这个包,运行echo.html,会有一些js无法运行,下载到本地替换js连接即可。
跨ip/跨机关键:
1.添加连接的账户,密码
userName:“abc”,
password:“123”,
2.把priv这个包放在tomcat/webapps目录下,启动tomcat
var options = {
userName:"abc",
password:"123",
timeout: 30, //超时时间
keepAliveInterval: 60, //心跳时间
onSuccess: function () {
debug("CONNECTION SUCCESS");
client.subscribe("dly", {qos: 1});
},
onFailure: function (message) {
debug("CONNECTION FAILURE - " + message.errorMessage);
}
};
if (location.protocol == "https:") {
options.useSSL = true;
}
debug("CONNECT TO " + wsbroker + ":" + wsport);
//连接客户端
client.connect(options);
如图,可以连接上本地ip,启动tomcat后,可以在另外一台电脑(另外一台不管装没装rabbitmq都可以)访问该页面进行消息通讯。
到这里,就结束了,如果有错欢迎交流指出,谢谢大家。