Mosquitto安装、测试总结Fedora14

1、首先需要下载源代码  源码下载地址为: http://mosquitto.org/download/
# 下载源代码包

wget http://mosquitto.org/files/source/mosquitto-1.4.2.tar.gz

# 解压
tar zxfv mosquitto-1.4.2.tar.gz
# 进入目录
cd mosquitto-1.4.2
# 编译
make
# 安装
sudo make install

2、安装注意事项
【1】编译找不到openssl/ssl.h
    【解决方法】——安装openssl
yum install libssl-devel
【2】编译过程找不到ares.h
    【解决方法】——修改config.mk中的WITH_SRV:=yes,改为WITH_SRV:=no
【3】编译过程中找不到EC_KEY,我是将config.mk中的WITH_EC:=yes,改为了WITH_EC:=no
【4】编译过程中找不到uuid/uuid.h需要安装uuid-devel和libuuid-devel

具体指令:yum install uuid-devel和yum install libuuid-devel

以下是网上的参考测试过程

完成后会在系统命令行里发现mosquitto、mosquitto_sub、mosquitto_pub三个工具(网上说有四个,还有一个mosquitto_passwd,用于管理密码,应该是关闭SSL的原因),分别用于启动代理、订阅消息和发布消息。
 
 
技术分享

 测试
步骤1:开启一个终端:输入“mosquitto”命令,结果如下图,服务启动,因为一直监听,所以不会看到命令行。
                                                                   正常情况
技术分享
输入“mosquitto”如果如下图报错,发现报错是地址已被使用,可以使用 "ps -e "查看进程和“netstat -apn | grep :1883”来查看谁占用端口,可使用“kill -s 9 pid号”杀死该进程,然后重新输入“mosquitto”命令即可得到上图正确结果。
                                                                  报错
技术分享


步骤2:开启第二个终端,输入“mosquitto_sub -t 主题名 -i 用户名”, (后面的“-i 用户名可省略”)
例如:mosquitto_sub -t mqtt        结果如图,由于一直监听,所以也不会看到命令行。
                          发布消息前第二个终端截图
技术分享
步骤3:开启第三个终端,输入“mosquitto_pub -t 主题名 -i 用户名 -m 要发送的消息”
(如果要发送的消息中有空格,需用引号括起来)
例如:mosquitto_pub -h localhost -t mqtt -m "hello world"
则第二个终端可以收到这条信息。笔者看到其命令行有文件传输,又尝试传一个文件(内容只有一句话),第二个终端会直接显示文件的内容(截图中“hello World”下面的那句话就是)。尝试一个大文件的传输,将一个7M的书传过去,首先是可以传,但是第二个窗口显示的全是乱码,传输的速度也是一个问题。
技术分享
发布消息后的第二个终端截图 这里之所以会想到传文件是因为看到mosquitto_pub的命令参数中有关于把文件当做message传输的记录,如图: 技术分享 这里的文件上限默认是256M。逻辑中有对文件大小的判断,超过256M的文件则不传。不知道这里如果吧这个值修改更大,会不会产生影响,笔者没有尝试,因为传7M的文件都感觉很慢。(这个问题在MQTT协议介绍中可以得到答案,MQTT文件长度的表示是用1至4个字节来表示,而其表示长度的方式又有特殊的加密方式,按照这种方式,其最大表示的长度为256M) 测试总结 三个终端,一个用来开启服务,一个执行mosquitto_sub来订阅消息,与服务器保持长连接,随时接收来自服务器推送的消息,最后一个终端则用来发布消息。这个测试的结果现在是正确的,但仍存在局限性,还有以下几个问题需要注意: 1)了解mosquitto_sub和mosquitto_pub命令背后是如何执行的,需要修改,订阅端的处理肯定不能仅仅是显示内容 到标准输出上。 2)了解mosquitto命令的逻辑,这里包含的内容很多,估计也是最难的。 3)这里的实验是在本地传输,需要做一个客户端出来(客户端可能是Android端或者MCU端),看是否可以正常传输,还有就是能传多大的数据,允许同时连入的客户数有多少(据说是20000以上)。



我的测试结果如下图:



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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值