N2O: TCP MQTT WebSocket
N2O es una biblioteca de bucles de protocolos de mensajes integrable para servidores WebSocket, HTTP, MQTT y TCP. Proporciona funciones básicas, como gestión de procesos, anillo de nodos virtuales para procesamiento de solicitudes, sesiones, codificación de cuadros y API unificada para mq externo y servicios de almacenamiento en caché.
Características principales
- Propósito: Retransmisión de protocolo de alto rendimiento
- Puntos finales: WebSockets, MQTT, TCP
- Base de código: 700 LOC (Erlang), 500 LOC (JavaScript)
- Dializador: REBAR, REBAR3, MAD, MIX
- Anfitriones: BANDIDO, COWBOY, EMQ, MOCHIWEB, RING, TCP, UDP
- PubSub: GPROC, SYN, PG2
- Formateadores: JSON, BERT, ASN.1
Extensiones de protocolo
- Plantillas: DTL, NITRO
- Capa de base de datos abstracta KVS: FS, MNESIA, ROCKSDB, RIAK, REDIS
- Procesos de Negocio: BPE (BPMN 2.0), SCM, ERP, CRM
- API HTTP: REST (lista prop/JSON)
- Recarga ACTIVA: GNU/Linux, Windows, macOS
Muestras básicas
- Chat MQTT: REVISAR TT (8000)
- WebSocket Chat: MUESTRA WS (8001)
Muestras empresariales
- Banco de clientes en línea: BANCO (8041)
- Mensajería Instantánea: CHAT (8042)
- Gestión del ciclo de vida del producto: PLM (8043)
Motivación
N2O fue creado para aportar claridad y cordura al desarrollo de software. El modelo de distribución es por archivo con licencia ISC.
Núcleo
Los módulos principales proporcionan inicio OTP y punto de entrada N2O.
- n2o — Supervisor y aplicación de N2O OTP
- n2o_pi — Procesos de N2O
- n2o_proto — Bucle N2O
- n2o_ring — Anillo N2O
MQTT
La versión MQTT se implementa como RPC sobre el patrón MQ. El trabajador del servicio N2O comenzó como un anillo de nodos virtuales, cada uno de los cuales ejecuta un bucle N2O.
- n2o_mqtt — Nodo virtual N2O MQTT
- n2o_auth — Autenticación N2O
mad app zero review
cd review
mad dep com pla rep
open http://127.0.0.1:8000
WebSocket
N2O Loop está conectado directamente y se ejecuta dentro del contexto del controlador WebSocket. Normalmente en Erlang utilizamos buses de mensajes OTP syn
o gproc
. Como dichos autobuses son opcionales en la configuración MQTT, incluimos los conductores de autobús en el paquete WebSocket.
- n2o_ws — Nodo virtual N2O WebSocket
- n2o_heart — protocolo PING
- n2o_cowboy - API COWBOY
- n2o_gproc — backend del bus GPROC
- n2o_syn — backend del bus SYN
mad app nitro sample
cd sample
mad dep com pla rep
open https://127.0.0.1:8001/app/index.htm
Protocolos
N2O se envía con 3 protocolos opcionales.
- n2o_ftp — Protocolo de archivos N2O
- n2o_heart — Protocolo N2O Heart
- nitro_n2o — Protocolo de marco web de nitrógeno
- bpe_n2o — Protocolo del motor de procesos de negocio
Servicios
Formateadores, Sesiones, etc. Opcional.
- n2o_bert — Codificador/decodificador BERT
- n2o_json — Codificador/decodificador JSON
- n2o_secret — Codificador/decodificador AES/GCM-256
- n2o_session — Almacenamiento de sesiones ETS
javascript
- bert.js — Codificador/decodificador BERT
- utf8.js: codificador/decodificador UTF8
- ieee754.js: codificador/decodificador IEEE754
- heart.js - protocolo CORAZÓN
- ftp.js: protocolo FTP
- n2o.js — Bucle del protocolo N2O
- mq.js — Cliente MQTT
Literatura
- "N2O: marco sensato y sin tonterías para la web salvaje" PDF (versiones 0.11—4.4)
- HTML "N2O BOOK Vol.2 Libro Verde" (versiones 4.5—9.11)