使用开源消息推送协议的实现-mosquitto

来源:互联网 发布:德意志意识形态 知乎 编辑:程序博客网 时间:2024/05/23 01:21

之前使用IBM的Mqtt协议实现RSMB因为非开源,不能在不同硬件架构上使用,后来找到另一个实现-mosquitto(mos:蚊子?官网上的LOGO就是一只蚊子--!)。


编译环境:ubuntu10.04

下载源码包后解压直接make,结果提示需要openssl,重新编译openssl后再make即可。如果不想使用openssl则载Makefile中去掉openssl的支持即可。

编译后主要程序和库:

1、mosquitto :消息推送服务主程序;

2、libmosquitto.so.1:程序库;

3、mosquitto_pub:发布端测试程序;

4、mosquitto_sub:订阅端服务程序;

5、mosquitto.conf:配置文件;

*直接make install后,程序库默认不载/lib下,需要链接至此,否则测试程序提示库找不到。


测试:

一、开起第一个终端窗口,直接运行mosquitto即可:

1354890081: mosquitto version 1.0.5 (build date 2012-12-07 22:01:34+0800) starting
1354890081: Opening ipv4 listen socket on port 1883.
1354890081: Opening ipv6 listen socket on port 1883.


二、开启另一个终端窗口,运行订阅程序mosquitto_sub:

注意:消息推送的发布和订阅要有主题,选项[-t] 主题,即:

mosquitto_sub -t 主题1

如需指定用户名称则加选项[-i] 用户名,即:

mosquitto_sub -t 主题1 -i 订阅端


三、开启第三个终端窗口,运行发布端程序mosquitto_pub:

指定消息推送的主题,发布端用户名和消息:

mosquitto_pub -t 主题1 -i 发布端 -m 你好

*注意:如果消息中间有空格则消息要已单引号括起来。

mosquitto_pub -t 主题1 -i 发布端 -m '我是发布端,你好。'


原创粉丝点击