N2O:TCP MQTT WebSocket
N2O 是一個用於 WebSocket、HTTP、MQTT 和 TCP 伺服器的嵌入式訊息協定循環庫。它提供了基本功能,例如進程管理、用於請求處理的虛擬節點環、會話、幀編碼以及用於外部 mq 和快取服務的統一 API。
核心特點
- 用途:高效能協定中繼
- 端點:WebSockets、MQTT、TCP
- 程式碼庫:700 LOC (Erlang)、500 LOC (JavaScript)
- 透析器:REBAR、REBAR3、MAD、MIX
- 主機:BANDIT、COWBOY、EMQ、MOCHIWEB、RING、TCP、UDP
- 發布訂閱:GPROC、SYN、PG2
- 格式化程式:JSON、BERT、ASN.1
協定擴展
- 範本:DTL、NITRO
- 抽象資料庫層KVS:FS、MNESIA、ROCKSDB、RIAK、REDIS
- 業務流程:BPE (BPMN 2.0)、SCM、ERP、CRM
- HTTP API:REST(proplist/JSON)
- 主動重新載入:GNU/Linux、Windows、macOS
基本樣品
- MQTT 聊天:回顧 TT (8000)
- WebSocket 聊天:範例 WS (8001)
企業樣本
- 網路客戶銀行:銀行 (8041)
- 即時通訊:聊天 (8042)
- 產品生命週期管理:PLM (8043)
動機
N2O 的創建是為了使軟體開發變得清晰和理智。分發模型基於每個文件並帶有 ISC 許可證。
核心
核心模組提供OTP啟動和N2O入口點。
- n2o — N2O OTP 管理程式和應用程式
- n2o_pi — N2O 進程
- n2o_proto — N2O 循環
- n2o_ring — N2O 環
MQTT
MQTT 版本以 RPC over MQ 模式實作。 N2O 服務工作執行緒以虛擬節點環開始,每個虛擬節點都執行 N2O 循環。
- n2o_mqtt — N2O MQTT 虛擬節點
- n2o_auth — N2O 身份驗證
mad app zero review
cd review
mad dep com pla rep
open http://127.0.0.1:8000
WebSocket
N2O Loop 直接連接並在 WebSocket 處理程序的上下文中運行。通常在 Erlang 中我們使用syn
或gproc
OTP 訊息匯流排。由於此類匯流排在 MQTT 設定中是可選的,因此我們在 WebSocket 套件中包含匯流排驅動程式。
- n2o_ws — N2O WebSocket 虛擬節點
- n2o_heart — PING 協議
- n2o_cowboy — 牛仔 API
- n2o_gproc — GPROC 匯流排後端
- n2o_syn — SYN 匯流排後端
mad app nitro sample
cd sample
mad dep com pla rep
open https://127.0.0.1:8001/app/index.htm
協定
N2O 隨附 3 個可選協定。
- n2o_ftp — N2O 檔案協議
- n2o_heart — N2O 心臟協議
- nitro_n2o — Nitrogen Web 框架協議
- bpe_n2o — 業務流程引擎協議
服務
格式化程式、會話等可選。
- n2o_bert — BERT 編碼器/解碼器
- n2o_json — JSON 編碼器/解碼器
- n2o_secret — AES/GCM-256 編碼器/解碼器
- n2o_session — ETS 會話存儲
JavaScript
- bert.js — BERT 編碼器/解碼器
- utf8.js — UTF8 編碼器/解碼器
- ieee754.js — IEEE754 編碼器/解碼器
- heart.js — HEART 協議
- ftp.js — FTP 協議
- n2o.js — N2O 協定循環
- mq.js — MQTT 用戶端
文學
- 「N2O:沒有胡說八道的瘋狂網路框架」PDF(版本 0.11—4.4)
- 「N2O BOOK Vol.2 綠皮書」HTML(版本 4.5—9.11)