kalm.js
v7.0.0
效能增益來自於發送資料包之前對其進行緩衝 - 最終發送批次而不是單個資料包。處理的流量越多,改進就越好。許多策略都是作為慣例提供的。您可以在此處閱讀有關數據包緩衝演算法的更多信息
安裝核心包
npm install kalm
安裝傳輸層(例如“tcp”)
npm install @kalm/tcp
伺服器
const kalm = require ( 'kalm' ) ;
const ws = require ( '@kalm/ws' ) ;
const server = kalm . listen ( {
port : 8800 ,
transport : ws ( ) ,
routine : kalm . routines . tick ( { hz : 5 } ) , // Sends packets at a frequency of 5 Hz (200ms)
host : '0.0.0.0' ,
} ) ;
server . on ( 'connection' , ( client ) => {
client . subscribe ( 'my-channel' , ( body , frame ) => {
// Handle messages here
} ) ;
server . broadcast ( 'my-other-channel' , 'some message' ) ;
} ) ;
客戶
const kalm = require ( 'kalm' ) ;
const ws = require ( '@kalm/ws' ) ;
const client = kalm . connect ( {
host : '0.0.0.0' ,
port : 8800 ,
transport : ws ( ) ,
routine : kalm . routines . realtime ( ) ,
} ) ;
client . on ( 'connect' , ( ) => {
client . subscribe ( 'my-other-channel' , ( body , frame ) => {
// Handle messages here
} ) ;
client . write ( 'my-channel' , 'hello world' ) ;
} ) ;
要查看有效的實現,請查看我們的範例資料夾。
[閱讀更多]
Kalm 使用NODE_DEBUG
環境變數。只需將kalm
包含在您的價值觀中即可。
例子:
NODE_DEBUG=net,kalm node myApp.js
Kalm 提供事件來追蹤例程處理資料包或接收原始訊框的時間。
事件 | 有效載荷 | 描述 |
---|---|---|
error | 錯誤 | (伺服器,客戶端)發生錯誤時發出。 |
ready | 空白 | (server) 表示伺服器現在正在積極監聽新連接 |
connection | 客戶 | (server) 表示客戶端已成功連接 |
connect | 客戶 | (client) 表示客戶端已成功連接 |
disconnect | 空白 | (client) 表示客戶端已斷開連接 |
frame | 原始幀 | (客戶端)收到已解析的完整幀時觸發。 |
npm test
npm run bench
如果您想到想要的東西,打開問題或提交拉取請求,我們將非常樂意查看!
這個項目的存在要感謝所有做出貢獻的人。 [貢獻]。
成為財務貢獻者並幫助我們維持我們的社區。 [貢獻]
與您的組織一起支持該專案。您的徽標將顯示在此處,並帶有指向您網站的連結。 [貢獻]
Apache 2.0 (c) 2023 弗雷德里克‧沙雷特