天天看点

centos yum 安装Mosquitto

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 &lt;username&gt;</code>

<code># 话题限制:topic [read|write] &lt;topic&gt;</code>

<code># 正则限制:pattern write sensor/%u/data</code>

<code>#acl_file</code>

<code># Bridges</code>

<code># 允许服务之间使用“桥接”模式(可用于分布式部署)</code>

<code>#connection &lt;name&gt;</code>

<code>#address &lt;host&gt;[:&lt;port&gt;]</code>

<code>#topic &lt;topic&gt; [[[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/&lt;clientid&gt;/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