N2O: TCP MQTT WebSocket
N2O é uma biblioteca de loop de protocolo de mensagem incorporável para servidores WebSocket, HTTP, MQTT e TCP. Ele fornece recursos básicos, como gerenciamento de processos, anéis de nós virtuais para processamento de solicitações, sessões, codificação de quadros e API unificada para mq externo e serviços de cache.
Recursos principais
- Finalidade: Relé de protocolo de alto desempenho
- Terminais: WebSockets, MQTT, TCP
- Base de código: 700 LOC (Erlang), 500 LOC (JavaScript)
- Dialisador: REBAR, REBAR3, MAD, MIX
- Hosts: BANDIT, COWBOY, EMQ, MOCHIWEB, RING, TCP, UDP
- PubSub: GPROC, SYN, PG2
- Formatadores: JSON, BERT, ASN.1
Extensões de protocolo
- Modelos: DTL, NITRO
- Camada de banco de dados abstrata KVS: FS, MNESIA, ROCKSDB, RIAK, REDIS
- Processos de Negócio: BPE (BPMN 2.0), SCM, ERP, CRM
- API HTTP: REST (proplist/JSON)
- Recarregamento ATIVO: GNU/Linux, Windows, macOS
Amostras Básicas
- Bate-papo MQTT: REVISÃO TT (8000)
- Bate-papo WebSocket: EXEMPLO WS (8001)
Amostras Empresariais
- Banco do cliente on-line: BANCO (8041)
- Mensagens instantâneas: CHAT (8042)
- Gerenciamento do ciclo de vida do produto: PLM (8043)
Motivação
O N2O foi criado para trazer clareza e sanidade ao desenvolvimento de software. O modelo de distribuição é por arquivo com licença ISC.
Núcleo
Os módulos principais fornecem início de OTP e ponto de entrada de N2O.
- n2o — Supervisor e Aplicativo N2O OTP
- n2o_pi — Processos N2O
- n2o_proto — Ciclo N2O
- n2o_ring — Anel N2O
MQTT
A versão MQTT é implementada como padrão RPC sobre MQ. O trabalhador de serviço N2O iniciado como um anel de nós virtuais executa cada um o loop N2O.
- n2o_mqtt — Nó virtual N2O MQTT
- n2o_auth — Autenticação N2O
mad app zero review
cd review
mad dep com pla rep
open http://127.0.0.1:8000
WebSocket
O N2O Loop é conectado diretamente e executado dentro do contexto do manipulador WebSocket. Normalmente em Erlang usamos barramentos de mensagens OTP syn
ou gproc
. Como esses barramentos são opcionais na configuração do MQTT, incluímos drivers de barramento no pacote WebSocket.
- n2o_ws — Nó virtual N2O WebSocket
- n2o_heart — Protocolo PING
- n2o_cowboy — API COWBOY
- n2o_gproc — back-end do barramento GPROC
- n2o_syn — back-end do barramento SYN
mad app nitro sample
cd sample
mad dep com pla rep
open https://127.0.0.1:8001/app/index.htm
Protocolos
O N2O vem com 3 protocolos opcionais.
- n2o_ftp — Protocolo de arquivo N2O
- n2o_heart — Protocolo N2O Heart
- nitro_n2o — Protocolo Nitrogen Web Framework
- bpe_n2o — Protocolo Business Process Engine
Serviços
Formatadores, sessões, etc. Opcional.
- n2o_bert — codificador/decodificador BERT
- n2o_json — codificador/decodificador JSON
- n2o_secret — codificador/decodificador AES/GCM-256
- n2o_session — armazenamento de sessão ETS
JavaScript
- bert.js — codificador/decodificador BERT
- utf8.js — codificador/decodificador UTF8
- ieee754.js — codificador/decodificador IEEE754
- heart.js — Protocolo HEART
- ftp.js — protocolo FTP
- n2o.js — loop de protocolo N2O
- mq.js — cliente MQTT
Literatura
- PDF "N2O: nenhuma besteira sã para a web selvagem" (versões 0.11—4.4)
- HTML "N2O BOOK Vol.2 Green Book" (versões 4.5—9.11)