欢迎加入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的使用方法相关推荐

  1. 判断浏览器是否支持websocket的方法

    比较直观的方式是直接判断全局对象中是否包含WebSocket对象即可: if( typeof(WebSocket) != "function" ) {alert("您的浏 ...

  2. mormot支持websocket

    mormot支持websocket 根据定义,HTTP连接是无状态的和单向的,也就是说,客户机向服务器发送一个请求,该服务器通过一个应答回复. 没有客户端的预先请求,就没有办法让服务器发送消息给客户机 ...

  3. 快速搭建CentOS+ASP.NET Core环境支持WebSocket

    以前用python,go尝试在linux下做web服务,python没有强类型支持与高性能,go又没有很好的集成开发环境(还有强迫症的语法),回头看了几次.net,都没有时间尝试,现终于实现了这些想法 ...

  4. WebSocket API使用篇检测浏览器是否支持WebSocket(4)

    WebSocket API是下一代客户端-服务器的异步通信方法.前面有三篇文章已经对WebSocket有了一些介绍,这里我总结了一下.我在使用WebSockets API过程中遇到的问题. 1.检测浏 ...

  5. Nginx支持WebSocket反向代理-学习小结

    WebSocket是目前比较成熟的技术了,WebSocket协议为创建客户端和服务器端需要实时双向通讯的webapp提供了一个选择.其为HTML5的一部分,WebSocket相较于原来开发这类app的 ...

  6. VB.net与VB6 调用Websocket功能的方法--Websocket For VB

    概述 Websocket 功能在现今的通信应用开发中越来越普遍,因为Websocket的消息机制,在应用程序进行即时通信时使用非常合适,而且Websocket 是长连接方式,比起以前的http协议,性 ...

  7. 实现微信支付(Native支付),使用WebSocket进行推送 ——4.配置SpringBoot支持WebSocket,推送结果

    实现微信支付(Native支付),使用WebSocket进行推送 --4.配置SpringBoot支持WebSocket,推送结果 依赖 <dependency><groupId&g ...

  8. 【Ubuntu】安装中文输入法、终端不支持中文的解决方法

    一.中文输入法安装 1.安装汉语语言包 sudo apt install fcitx sudo apt install language-pack-zh-hans 2.安装google拼音输入法 su ...

  9. (一)检测浏览器是否支持websocket

    二.创建一个支持 WebSocket 的服务 1.从pywebsocket下载mod_pywebsocket(亲git clone),地址在这里啦~,这里请注意,mod_pywebsocket需要py ...

最新文章

  1. java自带的resize方法_java对图片进行压缩和resize缩放的方法
  2. [android] 手机卫士黑名单功能(列表展示)
  3. 驾照考试(科目三-大路)
  4. 地摊经济和夜经济-国情讲坛·周荣江:城市生态谋定治理转型
  5. linux script $,linux – 这在shell脚本中是什么意思SCRIPTNAME =“${0 ## * /}”?
  6. 图片跟随鼠标移动并放大js特效
  7. errgroup 分析
  8. 博图组态显示未分配的设备_S71200CPU做IO共享设备的配置方法【图文】
  9. ROS系统学习9---节点间的内存共享(中级篇)---图像收发
  10. 易飞ERP工作流解决方案之【第三方OA系统集成】
  11. 谷歌浏览器代理服务器出现问题怎么办?(最快的解决办法)
  12. discuz手机版常见问题
  13. 手机端自适应表格table样式如何写
  14. PDF文档一键自动生成目录和书签
  15. java 开发微型公众账号应用
  16. 利用jsoup爬取百度网盘资源分享连接(多线程)(2)
  17. baidu卫兵世界杯智能提速 打破运营商OTT端阻力
  18. IT农民工如何来美国工作之FAQ
  19. shell读书笔记8
  20. HP Proliant GEN8无法启动磁盘问题

热门文章

  1. java apache commons_使用java apache commons下载文件?
  2. react native多语言_前端福音:为什么使用 React 和 SVG 开发图形 UI 是天作之合?
  3. 山东大学2016-2017校历
  4. Linux的基本命令符
  5. 在微型计算机控制系统中常用的报警方式中,微机控制技术复习题
  6. python添加excel模块,Python Excel操作——xlrd、xlwd,,读取1、导入模块 i
  7. 用linux命令清空文件夹,技能包!Linux 下清空或删除大文件内容的 5 种方法
  8. 顶岗实习周记java方向_会计学院顺利召开2021届毕业生顶岗实习动员大会
  9. Selenium POM简介
  10. android 组件化_你曾遇到的某大厂奇葩问题:Android组件化开发,组件间的Activity页面跳转...