1,先加入yum源
<code>#vi /etc/yum.repos.d/mosquitto.repo</code>
<code>[home_oojah_mqtt]</code>
<code>name=mqtt (CentOS_CentOS-6)</code>
<code>type</code><code>=rpm-md</code>
<code>baseurl=http:</code><code>//download</code><code>.opensuse.org</code><code>/repositories/home</code><code>:</code><code>/oojah</code><code>:</code><code>/mqtt/CentOS_CentOS-6/</code>
<code>gpgcheck=1</code>
<code>gpgkey=http:</code><code>//download</code><code>.opensuse.org</code><code>/repositories/home</code><code>:</code><code>/oojah</code><code>:</code><code>/mqtt/CentOS_CentOS-6/repodata/repomd</code><code>.xml.key</code>
<code>enabled=1</code>
2,开始安装
<code> </code><code>#yum install -y mosquitto mosquitto-clients libmosquitto-devel libmosquittopp-devel python-mosquitto</code>
3,配置
安装完成之后,所有配置文件会被放置于/etc/mosquitto/目录下,其中最重要的就是Mosquitto的配置文件,即mosquitto.conf,以下是详细的配置参数说明
<code># =================================================================</code>
<code># General configuration</code>
<code># 客户端心跳的间隔时间</code>
<code>#retry_interval 20</code>
<code># 系统状态的刷新时间</code>
<code>#sys_interval 10</code>
<code># 系统资源的回收时间,0表示尽快处理</code>
<code>#store_clean_interval 10</code>
<code># 服务进程的PID</code>
<code>#pid_file /var/run/mosquitto.pid</code>
<code># 服务进程的系统用户</code>
<code>#user mosquitto</code>
<code># 客户端心跳消息的最大并发数</code>
<code>#max_inflight_messages 10</code>
<code># 客户端心跳消息缓存队列</code>
<code>#max_queued_messages 100</code>
<code># 用于设置客户端长连接的过期时间,默认永不过期</code>
<code>#persistent_client_expiration</code>
<code># Default listener</code>
<code># 服务绑定的IP地址</code>
<code>#bind_address</code>
<code># 服务绑定的端口号</code>
<code>#port 1883</code>
<code># 允许的最大连接数,-1表示没有限制</code>
<code>#max_connections -1</code>
<code># cafile:CA证书文件</code>
<code># capath:CA证书目录</code>
<code># certfile:PEM证书文件</code>
<code># keyfile:PEM密钥文件</code>
<code>#cafile</code>
<code>#capath</code>
<code>#certfile</code>
<code>#keyfile</code>
<code># 必须提供证书以保证数据安全性</code>
<code>#require_certificate false</code>
<code># 若require_certificate值为true,use_identity_as_username也必须为true</code>
<code>#use_identity_as_username false</code>
<code># 启用PSK(Pre-shared-key)支持</code>
<code>#psk_hint</code>
<code># SSL/TSL加密算法,可以使用“openssl ciphers”命令获取</code>
<code># as the output of that command.</code>
<code>#ciphers</code>
<code># Persistence</code>
<code># 消息自动保存的间隔时间</code>
<code>#autosave_interval 1800</code>
<code># 消息自动保存功能的开关</code>
<code>#autosave_on_changes false</code>
<code># 持久化功能的开关</code>
<code>persistence </code><code>true</code>
<code># 持久化DB文件</code>
<code>#persistence_file mosquitto.db</code>
<code># 持久化DB文件目录</code>
<code>#persistence_location /var/lib/mosquitto/</code>
<code># Logging</code>
<code># 4种日志模式:stdout、stderr、syslog、topic</code>
<code># none 则表示不记日志,此配置可以提升些许性能</code>
<code>log_dest none</code>
<code># 选择日志的级别(可设置多项)</code>
<code>#log_type error</code>
<code>#log_type warning</code>
<code>#log_type notice</code>
<code>#log_type information</code>
<code># 是否记录客户端连接信息</code>
<code>#connection_messages true</code>
<code># 是否记录日志时间</code>
<code>#log_timestamp true</code>
<code># Security</code>
<code># 客户端ID的前缀限制,可用于保证安全性</code>
<code>#clientid_prefixes</code>
<code># 允许匿名用户</code>
<code>#allow_anonymous true</code>
<code># 用户/密码文件,默认格式:username:password</code>
<code>#password_file</code>
<code># PSK格式密码文件,默认格式:identity:key</code>
<code>#psk_file</code>
<code># pattern write sensor/%u/data</code>
<code># ACL权限配置,常用语法如下:</code>
<code># 用户限制:user <username></code>
<code># 话题限制:topic [read|write] <topic></code>
<code># 正则限制:pattern write sensor/%u/data</code>
<code>#acl_file</code>
<code># Bridges</code>
<code># 允许服务之间使用“桥接”模式(可用于分布式部署)</code>
<code>#connection <name></code>
<code>#address <host>[:<port>]</code>
<code>#topic <topic> [[[out | in | both] qos-level] local-prefix remote-prefix]</code>
<code># 设置桥接的客户端ID</code>
<code>#clientid</code>
<code># 桥接断开时,是否清除远程服务器中的消息</code>
<code>#cleansession false</code>
<code># 是否发布桥接的状态信息</code>
<code>#notifications true</code>
<code># 设置桥接模式下,消息将会发布到的话题地址</code>
<code># $SYS/broker/connection/<clientid>/state</code>
<code>#notification_topic</code>
<code># 设置桥接的keepalive数值</code>
<code>#keepalive_interval 60</code>
<code># 桥接模式,目前有三种:automatic、lazy、once</code>
<code>#start_type automatic</code>
<code># 桥接模式automatic的超时时间</code>
<code>#restart_timeout 30</code>
<code># 桥接模式lazy的超时时间</code>
<code>#idle_timeout 60</code>
<code># 桥接客户端的用户名</code>
<code>#username</code>
<code># 桥接客户端的密码</code>
<code>#password</code>
<code># bridge_cafile:桥接客户端的CA证书文件</code>
<code># bridge_capath:桥接客户端的CA证书目录</code>
<code># bridge_certfile:桥接客户端的PEM证书文件</code>
<code># bridge_keyfile:桥接客户端的PEM密钥文件</code>
<code>#bridge_cafile</code>
<code>#bridge_capath</code>
<code>#bridge_certfile</code>
<code>#bridge_keyfile</code>
<code># 自己的配置可以放到以下目录中</code>
<code>include_dir </code><code>/etc/mosquitto/conf</code><code>.d</code>
4,启动服务,两种方式
<code># mosquitto -c /etc/mosquitto/mosquitto.conf -d </code>
<code># sudo /etc/init.d/mosquitto start</code>
在这里我们直接进行测试mqqt的功能,即消息与订阅功能
消息端(topico 为topicTest02 , 消息为TestMessage)
<code>#mosquitto_pub -t topicTest02 -m TestMessage</code>
订阅端
<code># mosquitto_sub -v -t topicTest02 </code>
<code>topicTest02 TestMessage</code>
可以看到收到消息了。
本文转自 jackjiaxiong 51CTO博客,原文链接:http://blog.51cto.com/xiangcun168/1922479