mosquitto支持websocket的使用方法
欢迎加入QQ群:221779856,国内最活跃的Mosquitto沟通社区,关于MQTT、Mosquitto、IM、推送系统、物联网、高并发处理等技术。
mosquito的版本要大于1.4.2;
1.修改配置:
打开configure.mk中的WITH_WEBSOCKETS配置项,如下:
WITH_WEBSOCKETS:=yes
2.编译
make
3.安装websocket:
(1)下载源码:
https://github.com/warmcat/libwebsockets
(2)拷贝到编译mosquitto的主机上:
1)进入到下载的源码中:/home/jason/tools/libwebsockets-master
2)创建一个build文件夹
3)进入到build目录中;
4)执行cmke,使用命令:cmake ..
5)make && make install
mkdir buildcd buildcmake ..makemake install
4.常见问题:
(1)如果遇到:
[root@iZbp1i90l0ap2clvybw1gdZ src]# ./mosquitto
./mosquitto: error while loading shared libraries: libwebsockets.so.12: cannot open shared object file: No such file or directory
1)先在目录/usr/local/lib看下libwebsockets.so的位置,这里的后缀数字名可能会不一致,如下所示:
[root@iZbp1i90l0ap2clvybw1gdZ lib]# pwd
/usr/local/lib
[root@iZbp1i90l0ap2clvybw1gdZ lib]# ls
cmake libwebsockets.a libwebsockets.so libwebsockets.so.12 pkgconfig
2)建立ibwebsockets.so.12的软连接;
sudo ln -s /usr/local/lib/libwebsockets.so.12 /usr/lib/libwebsockets.so.12
3)执行:
ldconfig
(2)如果遇到问题
websockets.c:205:10: error: ‘struct mosquitto’ has no member named ‘ssl’
mosq->ssl = (SSL *)in;
解决办法,说明没有安装SSL,可以选择
安装ssl:
yum install openssl
yum install openssl-devel
(3)问题:Error: Websockets support not available.
[root@iZm5e92vqf4urefs01djnxZ mosquitto-1.4.15]# ./src/mosquitto -c mosquitto.conf
Error: Websockets support not available.
Error found at mosquitto.conf:297.
Error: Unable to open configuration file.
原因:编译mosquitto的时候没有打开websocket功能,但是配置文件中却把websocket打开了;
编译mosquitto的时候打开websocket功能需要将config.mk中的配置项WITH_WEBSOCKETS设置为yes;
5.配置mosquitto.conf
特别注意,mosquitto支持多端口监听,而且不同的端口支持不同的协议,这样部署一个mosquitto程序就可以同时支持mqtt协议和websocket协议,mosquitto默认的监听端口号是1883,在Default listener配置段中配置,配置项是:port;在不使用扩展配置项的时候也不启用任何自定义端口配置的时候,mosquitto默认使用1883端口,但是一旦用户启用了扩展监听端口就必须显示指出默认端口号,即:Default listener配置段的port参数:
# =================================================================
# Default listener
# =================================================================
# Port to use for the default listener.
#port 1883
mosquitto使用扩展监听端口来支持websocket,即它本身通过默认监听端口号(port参数指定)来接收mqtt协议的连接请求,同时启用另外一个监听端口号(listener参数指定)来接收websocket协议的连接请求,其配置如下(扩展监听端口的相关信息都是在Extra listeners配置段之后),启用扩展端口号需要在Extra listeners配置段之下,显示指出扩展监听端口的端口号listener以及所支持的应用层协议类型:
# =================================================================
# Extra listeners
# =================================================================
# Listen on a port/ip address combination. By using this variable
# multiple times, mosquitto can listen on more than one port. If
# this variable is used and neither bind_address nor port given,
# then the default listener will not be started.
# The port number to listen on must be given. Optionally, an ip
# address or host name may be supplied as a second argument. In
# this case, mosquitto will attempt to bind the listener to that
# address and so restrict access to the associated network and
# interface. By default, mosquitto will listen on all interfaces.
# Note that for a websockets listener it is not possible to bind to a host
# name.
# listener port-number [ip address/host name]
listener 9001
# Choose the protocol to use when listening.
# This can be either mqtt or websockets.
# Certificate based TLS may be used with websockets, except that only the
# cafile, certfile, keyfile and ciphers options are supported.
protocol websockets
mosquitto支持websocket的使用方法相关推荐
- 判断浏览器是否支持websocket的方法
比较直观的方式是直接判断全局对象中是否包含WebSocket对象即可: if( typeof(WebSocket) != "function" ) {alert("您的浏 ...
- mormot支持websocket
mormot支持websocket 根据定义,HTTP连接是无状态的和单向的,也就是说,客户机向服务器发送一个请求,该服务器通过一个应答回复. 没有客户端的预先请求,就没有办法让服务器发送消息给客户机 ...
- 快速搭建CentOS+ASP.NET Core环境支持WebSocket
以前用python,go尝试在linux下做web服务,python没有强类型支持与高性能,go又没有很好的集成开发环境(还有强迫症的语法),回头看了几次.net,都没有时间尝试,现终于实现了这些想法 ...
- WebSocket API使用篇检测浏览器是否支持WebSocket(4)
WebSocket API是下一代客户端-服务器的异步通信方法.前面有三篇文章已经对WebSocket有了一些介绍,这里我总结了一下.我在使用WebSockets API过程中遇到的问题. 1.检测浏 ...
- Nginx支持WebSocket反向代理-学习小结
WebSocket是目前比较成熟的技术了,WebSocket协议为创建客户端和服务器端需要实时双向通讯的webapp提供了一个选择.其为HTML5的一部分,WebSocket相较于原来开发这类app的 ...
- VB.net与VB6 调用Websocket功能的方法--Websocket For VB
概述 Websocket 功能在现今的通信应用开发中越来越普遍,因为Websocket的消息机制,在应用程序进行即时通信时使用非常合适,而且Websocket 是长连接方式,比起以前的http协议,性 ...
- 实现微信支付(Native支付),使用WebSocket进行推送 ——4.配置SpringBoot支持WebSocket,推送结果
实现微信支付(Native支付),使用WebSocket进行推送 --4.配置SpringBoot支持WebSocket,推送结果 依赖 <dependency><groupId&g ...
- 【Ubuntu】安装中文输入法、终端不支持中文的解决方法
一.中文输入法安装 1.安装汉语语言包 sudo apt install fcitx sudo apt install language-pack-zh-hans 2.安装google拼音输入法 su ...
- (一)检测浏览器是否支持websocket
二.创建一个支持 WebSocket 的服务 1.从pywebsocket下载mod_pywebsocket(亲git clone),地址在这里啦~,这里请注意,mod_pywebsocket需要py ...
最新文章
- java自带的resize方法_java对图片进行压缩和resize缩放的方法
- [android] 手机卫士黑名单功能(列表展示)
- 驾照考试(科目三-大路)
- 地摊经济和夜经济-国情讲坛·周荣江:城市生态谋定治理转型
- linux script $,linux – 这在shell脚本中是什么意思SCRIPTNAME =“${0 ## * /}”?
- 图片跟随鼠标移动并放大js特效
- errgroup 分析
- 博图组态显示未分配的设备_S71200CPU做IO共享设备的配置方法【图文】
- ROS系统学习9---节点间的内存共享(中级篇)---图像收发
- 易飞ERP工作流解决方案之【第三方OA系统集成】
- 谷歌浏览器代理服务器出现问题怎么办?(最快的解决办法)
- discuz手机版常见问题
- 手机端自适应表格table样式如何写
- PDF文档一键自动生成目录和书签
- java 开发微型公众账号应用
- 利用jsoup爬取百度网盘资源分享连接(多线程)(2)
- baidu卫兵世界杯智能提速 打破运营商OTT端阻力
- IT农民工如何来美国工作之FAQ
- shell读书笔记8
- HP Proliant GEN8无法启动磁盘问题
热门文章
- java apache commons_使用java apache commons下载文件?
- react native多语言_前端福音:为什么使用 React 和 SVG 开发图形 UI 是天作之合?
- 山东大学2016-2017校历
- Linux的基本命令符
- 在微型计算机控制系统中常用的报警方式中,微机控制技术复习题
- python添加excel模块,Python Excel操作——xlrd、xlwd,,读取1、导入模块 i
- 用linux命令清空文件夹,技能包!Linux 下清空或删除大文件内容的 5 种方法
- 顶岗实习周记java方向_会计学院顺利召开2021届毕业生顶岗实习动员大会
- Selenium POM简介
- android 组件化_你曾遇到的某大厂奇葩问题:Android组件化开发,组件间的Activity页面跳转...