Mosquitto installation configuration websockets

This document is based on the deployment of centos7

Pre-deployment preparation:

Installation wget command yum -y install wget

Install gcc-c ++

yum install gcc-c++

Install cmake

yum install cmake

Install openssl-devel

yum install openssl-devel

Installation libwebsockets

mkdir libwebsockets

wget https://github.com/warmcat/libwebsockets/archive/v1.3-chrome37-firefox30.tar.gz

tar -zxvf v1.3-chrome37-firefox30.tar.gz

cd libwebsockets-1.3-chrome37-firefox30

mkdir build

cd build

cmake ..

make install

Create a soft link

ln -s /usr/local/lib/libwebsockets.so.4.0.0 /usr/lib/libwebsockets.so.4.0.0

ldconfig

Installation mosquitto

mkdir mqtt

cd mqtt

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

tar -zxvf mosquitto-1.6.3.tar.gz

1.6.3-cd mosquitto

Modify the file config.mk

we config.mk

WITH_WEBSOCKETS:=yes

make

make install

Create a soft link

ln -s /usr/local/lib/libmosquitto.so.1 /usr/lib/libmosquitto.so.1

ldconfig

Enter / etc / mosquitto modify the configuration file directory

Copy mosquitto.conf.example profile

cp mosquitto.conf.example mosquitto.conf

cp pwfile.example pwfile.conf

cp aclfile.example aclfile.conf

vi mosquitto.conf

Modify ago #allow_anonymous: true

Modified allow_anonymous: false

Modify ago #password_file

After modifying password_file /etc/mosquitto/pwfile.conf

Modify ago #acl_file

After modifying /etc/mosquitto/aclfile.conf

Modify ago #protocol mqtt

Modified protocol websockets

Add mosquitto Username Password

mosquitto_passwd /etc/mosquitto/pwfile.conf mqtttest Enter enter the password twice to complete

Modify user permissions

there aclfile.conf

Add a user profile

user mqtttest

topic readwrite mqtttest (here mqtttest to publish \ subscribe identifiers, read and write permissions to read / write / readwrite)

Create a user test

groupadd mosquitto

useradd -g mosquitto mosquitto

Start command

mosquitto -c /etc/mosquitto/mosquitto.conf

Open external access port

--permanent permanent failure or reboot

firewall-cmd --zone=public --add-port=1883/tcp --permanent

After adding the port reloaded

firewall-cmd --reload

The sample code browser client

<!DOCTYPE html>

<html>

         <head>

                   <meta charset="utf-8">

                   <title></title>

                   <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/paho-mqtt/1.0.2/mqttws31.js"></script>

         </head>

         <body>

                   <script type="text/javascript">

                            was mqtt;

                            was host = "192.168.91.130 ';

                            each port = 1883;

                            // onConnect event

                            function onConnect() {

                                     console.log('connected.');

                                     let i=0;

                                     let timer = setInterval(() => {

                                               i++;

                                               var raw_message = 'information!' + i;

                                               message = new Paho.MQTT.Message(raw_message);

                                               message.destinationName = 'mqtttest';

                                               console.log('sending message: ' + raw_message);

                                               mqtt.send(message);

                                               if(i >= 5){

                                                        clearInterval(timer);

                                               }

                                     },1000)

                                     // subscribe to download topic

                                     was subOptions = {

                                               qos: 1,

                                               onSuccess: onSubscribe

                                     };

                                     mqtt.subscribe('mqtttest', subOptions);

                            }

                            // subscribe to topics success events

                            function onSubscribe(context) {

                                     console.log('subscribe success');

                                     console.log(context);

                            }

                            // connection failure events

                            function onFailure(message) {

                                     console.log('connect failed.');

                            }

                            // onMessageArrived 事件

                            function onMessageArrived(message) {

                                     console.log('new message arrived...');

                                     console.log(message.payloadString);

                            }

                            // Create connection MQTT websocket

                            function MQTTconnect() {

                                     console.log('connecting to ' + host + ':' + port);

                                     mqtt = new Paho.MQTT.Client(host, port, 'clientid');

                                     was options = {

                                               timeout: 3,

                                               onSuccess: onConnect,

                                               onFailure: onFailure,

                                               userName: 'mqtttest',

                                               password: 'mqtttest',

                                               mqttVersion: 4

                                     };

                                     mqtt.onMessageArrived = onMessageArrived;

                                     mqtt.connect(options);

                            }

                            MQTTconnect();

                   </script>

         </body>

</html>

Guess you like

Origin www.cnblogs.com/yaojiayuan/p/11067900.html