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 弗雷德里克·沙雷特