这里写代码片
网上看了很多windows系统安装mosquitto的,都提到装cygwin,不知道为什么,我是直接下载mosquitto-1.4.10-install-win32.exe 安装的,具体过程如下:
1 下载、安装、使用
1.1 下载
mosquitto最新版下载:http://mosquitto.org/download/
windows安装选择:
mosquitto-1.4.10-install-win32.exe (~200 kB) (Native build, Windows Vista and up, built with Visual Studio Community 2013)
mosquitto-1.4.10-install-cygwin.exe (~200 kB) (Cygwin build, Windows XP and up)
两者区别已经说明了,只是编译方式不同,第二个应该是多了cygwin相关的库,我两个都试了,都可以,真正要注意的问题是,openssl、pthreads相关的动态库,下面会提到
(源码编译的话,需要下载源码:http://mosquitto.org/files/source/)
1.2 安装
双击“mosquitto-1.4.10-install-win32.exe”,按提示下一步安装好即可
1.3 使用
进入mosquitto安装目录,双击“mosquitto.exe”,出现几个问题:
1)缺少ssleay32.dll
解决方法:下载64位ssleay32.dll、libeay32.dll,另外还有个pthreadVC2.dll,三个dll放到安装目录
2)双击“mosquitto.exe”一闪而过
解决方法:win+R键,输入services.msc回车(或者右键计算机属性–>管理–>服务),打开窗口后在服务里找到Mosquitto Broker,若为启动状态,点击“停止”,右键属性设置为手动启动。
上述问题解决后,双击“mosquitto.exe”,即手动启动了mosquitto服务,即在本机开启了mqtt代理,下面可以进行发布和订阅测试。
3 发布订阅测试
3.1 用提供的mosquitto.exe、mosquitto_sub.exe、mosquitto_pub.exe测试
3.1.1启动mosquitto服务
参考:http://www.th7.cn/system/win/201607/170516.shtml
进入安装目录,双击双击“mosquitto.exe”即可,因为上面已经设置了手动启动mosquitto服务,所以该窗口不要关闭,测试过程重要一直启动该服务
3.1.2 订阅
win+R键,输入cmd,即打开命令行,进入mosquitto目录,输入:mosquitto_sub -v -t MqttTest
-v表示打印更多调试信息,-t表示指定主题,MqttTest即为主题名
3.1.3 发布
win+R键,输入cmd,即打开命令行,进入mosquitto目录,输入: mosquitto_pub -t MqttTest -m HelloMqtt
-t表示指定主题,MqttTest即为主题名,
-m表示指定消息内容,HelloMqtt即为消息内容
3.2 VS2010项目中测试
参考:http://blog.youkuaiyun.com/akof1314/article/details/7494572
1. 创建Win32控制台程序;
2. 将mosquitto安装目录下的devel文件夹中的mosquitto.h、mosquittopp.h、mosquittopp.lib拷贝到工程目录下(建议新建文件夹,专门放mqtt相关的,然后在项目属性中,对应添加引用和包含目录);
3. 修改mosquittopp.h文件:
- 1
改成:
- 1
- 代码
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
5 build
build上述代码,应该没问题,然后将mosquitto安装目录下的mosquitto.dll、mosquittopp.dll以及ssleay32.dll、libeay32.dll、pthreadVC2.dll,一共5个dll,一起拷贝到工程输出目录下,即exe所在目录;
6 运行
上面代码为发布主题的测试(对应注释,可以作订阅测试),运行前按之前的方式先用命令行开启订阅主题,运行代码后,可接收到订阅主题的消息。
libmosquitto、libmosquittocpp函数说明:
http://mosquitto.org/api/files/mosquitto-h.html