Message Broker MQTT
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)
- !/bin/bash
- /etc/rc.d/init.d/
- 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