Instalar Mosquitto en opensuse (con soporte para websockets)

  

¿Que es Mosquitto?



Para los que no saben que es mosquitto. Es una implementacion de código abierto  intermediario de mensajes que implementa los MQ Telemetry Transporte (MQTT) 

MQTT proporciona un método de llevar a cabo la mensajería mediante un modelo de publicación / suscripción. Esto hace que sea adecuado para la comunicación  "máquina a máquina" de mensajería como con sensores de baja potencia o dispositivos móviles como teléfonos, ordenadores integrados o microcontroladores como el Arduino. 

MQTT puede ser usado para desarrollos de Internet of Thing (IoT), para la comunicación entre dispositivos, como pueden ser wearables, smartphones.

Dependencias 

Para la instalación en opensuse requerimos de las siguientes dependencias. 

 # zypper install cmake libopenssl-devel mercurial uuid-devel libuuid-devel libxslt1 docbook-xsl-stylesheets docbook5-xsl-stylesheets git gcc-c++ gcc python-pip

 INSTALAR libwebsockets

# git clone https://github.com/warmcat/libwebsockets.git  
# cd libwebsockets/
# mkdir build
# cd build/
# cmake .. -DOPENSSL_ROOT_DIR=/usr/bin/openssl  
# make
# make install

INSTALAR ares

Ares puede ser omitido, en algunas ocasiones al instalar mosquitto provoca error al no econtrar esta dependencia, en esos casos tendremos que instalarla

# wget http://c-ares.haxx.se/download/c-ares-1.10.0.tar.gz
# tar xvf c-ares-1.10.0.tar.gz 
# cd c-ares-1.10.0/
# ./configure
# make install


Ahora si, ya con las dependencias instaladas tenemos todo listo para instalar nuestro servidor MQTT con mosquitto

 INSTALAR mosquitto

# git clone https://git.eclipse.org/r/mosquitto/org.eclipse.mosquitto
# cd org.eclipse.mosquitto/
# git checkout origin/1.4
Para que mosquitto tenga soporte para websockets es necesario editar el archivo config.mk y editar la linea donde mencion WITH_WEBSOCKETS:=no e indicarle yes,
# vi config.mk 
     WITH_WEBSOCKETS:=yes
# make
make binary 


=-Si lo siguiente te provoco un error intenta con esta version.-=
# wget http://mosquitto.org/files/source/mosquitto-1.4.4.tar.gz
tar xavf mosquitto-1.4.4.tar.gz
cd mosquitto*
make
make install

Configuración

Crea el siguiente archivo de configuración para mosquitto , en donde especificaremos los puertos a usar y el protocolo.
# vi /etc/mosquitto/mosquitto.conf

autosave_interval 1800
connection_messages true
log_timestamp true
listener 3000
listener 9001
protocol websockets

Debemos crear un usuario para mosquitto con la siguiente linea. 

# useradd -r -m -d /var/lib/mosquitto -s /usr/sbin/nologin -g nogroup mosquitto


Para iniciar mosquitto usamos el siguiente comando.

# mosquitto -c /etc/mosquitto/mosquitto.conf

En algunas ocaciones puede dar el siguiente error:

mosquitto: error while loading shared libraries: libwebsockets.so.6: cannot open shared object file: No such file or directory


Se debe que a que la instalación de libwebsockets se encuentra en /usr/local/lib y mosquitto lo busca en /usr/lib o /usr/lib64 para x64 Se soluciona creando un link simbólico

# sudo ln -s /usr/local/lib/libwebsockets.so.6 /usr/lib64/libwebsockets.so.6

Si quieres que mosquitto corra al iniciar el sistema, debes agregar la siguiente linea en  /etc/rc.d/after.local

  /usr/local/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf &



Comentarios

Entradas más populares de este blog

Instalación de PROXMOX (por usb)

Firmar y publicar una app de Cordova en Play Store

Método PERT.