mq-websocker连接问题

2 篇文章 0 订阅

环境:linux(ubuntu、Centos7),websocket,mosquitto-1.4.10,libwebsockets-masterjava

说明:若是安装过程当中出现问题,请看六中的解决办法。可能会解决你遇到的问题。linux

1、安装相应的功能libwebsocketsweb

       1.下载libwebsockets,下载地址https://libwebsockets.org/ajax

     2.解压,我下载的是zip的,利用xftp上传到服务器上面的。ubuntu

     3.进入目录 cd libwebsockets-mastervim

     4.建立一个build文件夹 mkdir build服务器

     5.进入build  cd buildwebsocket

     6.安装若是但愿使用64位库文件,添加参数以下cmake .. -DLIB_SUFFIX=64eclipse

     7.编译make

     8. 安装make install

2、安装mqtt服务器

     1.选择对应的版本下载mqtt服务器,下载地址http://mosquitto.org/files/source/

     2.解压 tar zxfvmosquitto-1.4.10.tar.gz

     3.进入目录  cd mosquitto-1.4.10

     4.配置文件  vim config.mk (WITH_WEBSOCKETS:=yes)

     5.编译make

     6.安装make install

3、配置mqtt服务器

     1.找到/etc/mosquitto/mosquitto.conf,若是没有该文件则进入你安装的mosquitto位置执行 cp mosquitto.conf  /etc/mosquitto/mosquitto.conf

     2.编辑mosquitto.conf   vim mosquitto.conf

     3.在Default Listenter 添加一下内容

               port 1883

               listener 19211 

               protocol websockets

               注意:这里19211是websocket链接端口

     4.运行 mosquitto -c  /etc/mosquitto/mosquitto.conf  (这里必定运行这个,否则websocket链接不上mqtt服务器。)

4、测试mqtt服务器

     1.启动mqtt服务器 mosquitto -v

     2.订阅主题 mosquitto_sub -v -t 主题名

     3.发布消息 mosquitto_pub -t 主题名 -m 消息内容

     若是订阅主题的客户端收到发布的消息,则说明成功。

5、websocket链接mqtt服务器 jsAPI文档: https://www.eclipse.org/paho/clients/js/

1.引入
2. // 建立client
client = new Paho.MQTT.Client(location.hostname, Number(location.port), “clientId”);
// 设置回调
client.onConnectionLost = onConnectionLost;
client.onMessageArrived = onMessageArrived;
// 链接mqtt服务器
client.connect({onSuccess:onConnect});
//回调方法
function onConnect() {
console.log(“onConnect”);
//订阅主图
client.subscribe(“World”);
//发布消息
message = new Paho.MQTT.Message(“Hello”);
message.destinationName = “World”;
client.send(message);
}
// 链接失败的回调
function onConnectionLost(responseObject) {
if (responseObject.errorCode !== 0) {
console.log(“onConnectionLost:”+responseObject.errorMessage);
}
}
// 接收到消息的回调
function onMessageArrived(message) {
console.log(“onMessageArrived:”+message.payloadString);
}
6、遇到的问题

1.编译找不到cmake

解决办法:安装cmake

sudo apt-get install libssl-dev

2.error while loading shared libraries: libmosquitto.so.1: cannot open shared object file: No such file or directory

解决办法:

建立连接

sudo ln -s /usr/local/lib/libmosquitto.so.1 /usr/lib/libmosquitto.so.1

更新动态连接库

sudo ldconfig

3.编译找不到openssl/ssl.h

解决办法:安装openssl

sudo apt-get install libssl-dev

4.编译过程找不到ares.h

解决办法:sudo apt-get install libc-ares-dev

5.编译过程找不到uuid/uuid.h

sudo apt-get install uuid-dev

6.最后启动了,就是远程链接不上,考虑是防火墙的问题

关闭防火墙systemctl stop firewalld.service

具体的解决办法我猜想应该是配置防火墙,配置开放端口,而不是关闭防火墙,这个方法我还没来的及验证。

7.error while loading shared libraries: libwebsockets.so.9: cannot open shared object file: No such file or directory

解决办法:sudo ln -s /usr/local/lib64/libwebsockets.so.9 /usr/lib/libwebsockets.so.9

sudo ldconfig

8.websocket链接报错Failed to connect: AMQJS0007E Socket error:undefined.

若是配置的websocket正常启动成功,问题可能出如今SSL上面。

解决方法:关闭ssl的支持

卸载mqtt:make uninstall

配置config.mk WITH_TLS:=no WITH_TLS_PSK:=no

安装 make install

转载于:https://my.oschina.net/lwenhao/blog/1518373

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值