¿Qué es EMQX?

EMQX es un broker MQTT de código abierto altamente escalable y permite la creación de un cluster con múltiples nodos lo que facilita el manejo de miles de conexiones, EMQX permite su gestión a través de un dashboard muy completo e integra varios plugins que facilitan el manejo de usuarios y reglas para administrar los permisos de cada uno.

Instalación

Para la instalación del broker se puede sar Docker corriendo un contenedor con una instancia de EMQX sobre una Raspberry Pi 3

Instalación docker

Con los siguientes comandos se instala los paquetes docker y docker-compose.

sudo apt-get install docker.ce
sudo apt-get install docker.compose

Instalación del contenedor EMQX

Creamos un archivo de docker-compose que nos facilitara la instalación del contenedor.

docker-compose.yml

version: "2.0"
services:
  emqx:
    container_name: emqx_iot
    image: emqx/emqx:latest
    #restart: always
    ports:
      - 18083:18083
      - 18084:18084
      - 1883:1883
      - 8883:8883
      - 8083:8083
      - 8084:8084
      - 8085:8081

    environment:
       EMQX_NAME: mi-emqtt
       EMQX_HOST: 127.0.0.1
       EMQX_ALLOW_ANONYMOUS: "false"
       EMQX_NOMATCH: "deny"
       TZ: "America/Bogota"
       EMQX_DASHBOARD__DEFAULT_USER__PASSWORD: "contraseña_dashboard"
       EMQX_DASHBOARD__DEFAULT_USER__LOGIN: "usuario_dashboard"
       EMQX_AUTH__USER__1__USERNAME: "usuario_cliente"
       EMQX_AUTH__USER__1__PASSWORD: "contraseña_cliente"
       EMQX_LOADED_PLUGINS: "emqx_recon,emqx_retainer,emqx_management,emqx_dashboard,emqx_auth_mnesia"

Iniciamos el contenedor con el siguiente comando:

docker-compose up -d

Luego de que termine la descarga de la imagen e inicie el contenedor se puede acceder al broker EMQX mediante el navegador en la dirección http://ip_raspberry:18083

Usamos las credenciales pasadas como variables de entorno al contenedor, username = usuario_dashboard y password = contraseña_dashboard,

Por ultimo probamos que nos podamos conectar al broker mediante el usuario creado, para esto usamos una herramienta que nos provee EMQX la cual encontramos en la pestaña tools y en Websocket e ingresamos en Username el usuario creado: usuario_cliente y la contraseña: contraseña_cliente, ya solo queda hacer click en conectar como se muestra en la siguiente imagen.

EMQX es un broker muy completo, para mas información es recomendado leer la documentación donde se destaca todas las características que esta herramienta nos ofrece.

Referencias

Documentación broker EMQX

https://hub.docker.com/r/emqx/emqx