N2O: TCP MQTT WebSocket
N2O เป็นไลบรารีลูปโปรโตคอลข้อความแบบฝังได้สำหรับเซิร์ฟเวอร์ WebSocket, HTTP, MQTT และ TCP โดยมีคุณสมบัติพื้นฐาน เช่น การจัดการกระบวนการ โหนดเสมือนริงสำหรับการประมวลผลคำขอ เซสชัน การเข้ารหัสเฟรม และ API แบบรวมสำหรับ mq ภายนอกและบริการแคช
คุณสมบัติหลัก
- วัตถุประสงค์: รีเลย์โปรโตคอลประสิทธิภาพสูง
- ตำแหน่งข้อมูล: WebSockets, MQTT, TCP
- รหัสฐาน: 700 LOC (Erlang), 500 LOC (JavaScript)
- ตัวฟอก: REBAR, REBAR3, MAD, MIX
- โฮสต์: BANDIT, COWBOY, EMQ, MOCHIWEB, RING, TCP, UDP
- PubSub: GPROC, SYN, PG2
- ฟอร์แมต: JSON, BERT, ASN.1
ส่วนขยายโปรโตคอล
- แม่แบบ: DTL, NITRO
- เลเยอร์ฐานข้อมูลนามธรรม KVS: FS, MNESIA, ROCKSDB, RIAK, REDIS
- กระบวนการทางธุรกิจ: BPE (BPMN 2.0), SCM, ERP, CRM
- HTTP API: ส่วนที่เหลือ (proplist/JSON)
- กำลังโหลดซ้ำ: GNU/Linux, Windows, macOS
ตัวอย่างพื้นฐาน
- แชท MQTT: ตรวจสอบ TT (8000)
- แชท WebSocket: ตัวอย่าง WS (8001)
ตัวอย่างองค์กร
- ธนาคารลูกค้าออนไลน์: BANK (8041)
- ข้อความโต้ตอบแบบทันที: แชท (8042)
- การจัดการวงจรชีวิตผลิตภัณฑ์: PLM (8043)
แรงจูงใจ
N2O ถูกสร้างขึ้นเพื่อนำความชัดเจนและสติมาสู่การพัฒนาซอฟต์แวร์ รูปแบบการแจกจ่ายเป็นแบบต่อไฟล์พร้อมใบอนุญาต ISC
เคอร์เนล
โมดูลหลักมีจุดเริ่มต้น OTP และจุดเริ่มต้น N2O
- n2o — ผู้ดูแลและแอปพลิเคชัน N2O OTP
- n2o_pi — กระบวนการ N2O
- n2o_proto — ห่วง N2O
- n2o_ring — แหวน N2O
มคต
เวอร์ชัน MQTT ถูกนำมาใช้เป็น RPC บนรูปแบบ 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
เว็บซ็อกเก็ต
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 Framework
- bpe_n2o — โปรโตคอล Business Process Engine
บริการ
ตัวจัดรูปแบบ เซสชัน ฯลฯ ไม่จำเป็น
- n2o_bert - ตัวเข้ารหัส / ตัวถอดรหัส BERT
- n2o_json - ตัวเข้ารหัส / ตัวถอดรหัส JSON
- n2o_secret — ตัวเข้ารหัส/ตัวถอดรหัส AES/GCM-256
- n2o_session — ที่เก็บข้อมูลเซสชัน ETS
จาวาสคริปต์
- bert.js - ตัวเข้ารหัส / ตัวถอดรหัส BERT
- utf8.js - ตัวเข้ารหัส / ตัวถอดรหัส UTF8
- ieee754.js - ตัวเข้ารหัส / ตัวถอดรหัส IEEE754
- heart.js - โปรโตคอล HEART
- ftp.js — โปรโตคอล FTP
- n2o.js - วนรอบโปรโตคอล N2O
- mq.js — ไคลเอนต์ MQTT
วรรณกรรม
- "N2O: ไม่มีกรอบการทำงานไร้สาระสำหรับ wild web" PDF (เวอร์ชัน 0.11—4.4)
- "N2O BOOK Vol.2 Green Book" HTML (เวอร์ชัน 4.5—9.11)