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 | 무효의 | (서버) 서버가 이제 새 연결을 적극적으로 수신하고 있음을 나타냅니다. |
connection | 고객 | (서버) 클라이언트가 성공적으로 연결되었음을 나타냅니다. |
connect | 고객 | (클라이언트) 클라이언트가 성공적으로 연결되었음을 나타냅니다. |
disconnect | 무효의 | (클라이언트) 클라이언트의 연결이 끊어졌음을 나타냅니다. |
frame | 원시 프레임 | (클라이언트) 구문 분석된 전체 프레임을 수신할 때 트리거됩니다. |
npm test
npm run bench
원하는 것이 생각나거나, 이슈를 열거나, 끌어오기 요청을 제출하시면, 저희가 기꺼이 살펴보겠습니다!
이 프로젝트는 기여하는 모든 사람들 덕분에 존재합니다. [기여하다].
재정적인 기부자가 되어 지역 사회를 유지하는 데 도움을 주세요. [기여하다]
귀하의 조직과 함께 이 프로젝트를 지원하십시오. 귀하의 로고가 귀하의 웹사이트 링크와 함께 여기에 표시됩니다. [기여하다]
아파치 2.0(c) 2023 프레드릭 샤렛