Message Broker MQTT

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar

Sobre

Mosquitto

Requisitos

  • Instalar o mosquitto server
$ sudo apt-get install mosquitto
  • Para subscrever e publicar, instalar o mosquitto-clients
$ sudo apt-get install mosquitto-clients
  • Liberar porta de entrada 1883

Comandos

  • Subscrever: mosquitto_sub -h host -t subject
    • Exemplo: mosquitto_sub -h test.mosquitto.org -t testCleber
  • Publicar: mosquitto_pub -h host -t subject -m message
    • Exemplo: mosquitto_pub -h dweet.io -t testeCleber -m OláMundo!

Exemplo de geração de mensagens de teste

  • Gerando mensagens a cada 5 segundos (script counter_mqtt.sh)

  1. !/bin/bash
  2. /etc/rc.d/init.d/
  1. Source function library

. /etc/init.d/functions

COUNTING=true

start() { echo "Publishing in mosquitto test server"

       #Starting counter in ZERO
       COUNTER=0
       #Get current datetime put it in a variable
       CURRENTDATETIME="$(date +'%d/%m/%Y-%T')"
       #Publish in mosquitto server (must be running in the svr and TCP 1833 port opened)
       mosquitto_pub -h 192.168.0.113 -m "$COUNTER-$CURRENTDATETIME" -t mqtt_test
       while [ COUNTING ]
       do

sleep 5 COUNTER=$[$COUNTER + 1] CURRENTDATETIME="$(date +'%d/%m/%Y-%T')" mosquitto_pub -h 192.168.0.113 -m "$COUNTER-$CURRENTDATETIME" -t mqtt_test

       done
       return

}

stop() {

       echo -n "Shutting down : "

echo "Stopping mosquitto test pushish messages"

       COUNTING=false
       return

}

case "$1" in

   start)
       start
       ;;
   stop)
       stop
       ;;
   status)
       ;;
   restart)

echo "Restarting mosquitto test pushish messages"

       COUNTING=true
       ;;
   *)
       echo "Usage:  {start|stop|status|reload|restart[|probe]"
       exit 1
       ;;

esac exit $? </syntaxhighlight> Fonte: https://www.linux.com/learn/managing-linux-daemons-init-scripts


  • Colocando o gerador de mensagens na inicialização do linux
sudo mv counter_mqtt.sh /etc/init.d/
sudo chmod +x /etc/init.d/counter_mqtt.sh
sudo update-rc.d counter_mqtt.sh defaults 

Fonte: http://stackoverflow.com/questions/7221757/run-automatically-program-on-startup-under-linux-ubuntu

Servidores públicos