N2O : WebSocket TCP MQTT
N2O est une bibliothèque de boucles de protocole de message intégrable pour les serveurs WebSocket, HTTP, MQTT et TCP. Il fournit des fonctionnalités de base, telles que la gestion des processus, un anneau de nœuds virtuels pour le traitement des demandes, des sessions, le codage de trames et une API unifiée pour les services externes mq et de mise en cache.
Fonctionnalités principales
- Objectif : relais de protocole haute performance
- Points de terminaison : WebSockets, MQTT, TCP
- Base de code : 700 LOC (Erlang), 500 LOC (JavaScript)
- Dialyseur : REBAR, REBAR3, MAD, MIX
- Hébergeurs : BANDIT, COWBOY, EMQ, MOCHIWEB, RING, TCP, UDP
- PubSub : GPROC, SYN, PG2
- Formateurs : JSON, BERT, ASN.1
Extensions de protocole
- Modèles : DTL, NITRO
- Couche de base de données abstraite KVS : FS, MNESIA, ROCKSDB, RIAK, REDIS
- Processus métiers : BPE (BPMN 2.0), SCM, ERP, CRM
- API HTTP : REST (liste prop/JSON)
- Rechargement ACTIF : GNU/Linux, Windows, macOS
Exemples de base
- Chat MQTT : RÉVISION TT (8000)
- Chat WebSocket : EXEMPLE WS (8001)
Exemples d'entreprise
- Banque client en ligne : BANQUE (8041)
- Messagerie instantanée : CHAT (8042)
- Gestion du cycle de vie des produits : PLM (8043)
Motivation
N2O a été créé pour apporter clarté et bon sens au développement de logiciels. Le modèle de distribution est basé sur un fichier avec une licence ISC.
Noyau
Les modules de base fournissent le démarrage OTP et le point d'entrée N2O.
- n2o — Superviseur et application N2O OTP
- n2o_pi — Processus N2O
- n2o_proto — Boucle N2O
- n2o_ring — Anneau N2O
MQTT
La version MQTT est implémentée en tant que modèle RPC sur MQ. Le travailleur de service N2O a démarré sous la forme d'un anneau de nœuds virtuels, chacun exécutant une boucle N2O.
- n2o_mqtt — Nœud virtuel N2O MQTT
- n2o_auth — Authentification N2O
mad app zero review
cd review
mad dep com pla rep
open http://127.0.0.1:8000
WebSocket
N2O Loop est directement connecté et exécuté dans le contexte du gestionnaire WebSocket. Habituellement, à Erlang, nous utilisons des bus de messages OTP syn
ou gproc
. Comme ces bus sont facultatifs dans la configuration MQTT, nous incluons les pilotes de bus dans le package WebSocket.
- n2o_ws — Nœud virtuel N2O WebSocket
- n2o_heart — Protocole PING
- n2o_cowboy — API COWBOY
- n2o_gproc — Moteur de bus GPROC
- n2o_syn — Back-end du bus SYN
mad app nitro sample
cd sample
mad dep com pla rep
open https://127.0.0.1:8001/app/index.htm
Protocoles
N2O est livré avec 3 protocoles optionnels.
- n2o_ftp — Protocole de fichier N2O
- n2o_heart — Protocole cardiaque N2O
- nitro_n2o — Protocole Nitrogen Web Framework
- bpe_n2o — Protocole Business Process Engine
Services
Formateurs, sessions, etc. Facultatif.
- n2o_bert — Encodeur/décodeur BERT
- n2o_json — Encodeur/décodeur JSON
- n2o_secret — Encodeur/décodeur AES/GCM-256
- n2o_session — Stockage des sessions ETS
Javascript
- bert.js — Encodeur/décodeur BERT
- utf8.js — Encodeur/décodeur UTF8
- ieee754.js — Encodeur/décodeur IEEE754
- heart.js — Protocole COEUR
- ftp.js — Protocole FTP
- n2o.js — Boucle de protocole N2O
- mq.js — Client MQTT
Littérature
- "N2O : pas de cadre sain d'esprit pour le Web sauvage" PDF (versions 0.11—4.4)
- "N2O BOOK Vol.2 Livre Vert" HTML (versions 4.5—9.11)