Der Leistungsgewinn entsteht durch das Puffern von Paketen vor dem Senden – schließlich durch das Senden von Stapeln anstelle einzelner Pakete. Je mehr Datenverkehr verarbeitet wird, desto besser ist die Verbesserung. Viele Strategien werden als Routinen angeboten. Weitere Informationen zum Paketpufferungsalgorithmus finden Sie hier
Installieren Sie das Kernpaket
npm install kalm
Installieren Sie die Transportschicht (z. B. „tcp“).
npm install @kalm/tcp
Server
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' ) ;
} ) ;
Kunde
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' ) ;
} ) ;
Um funktionierende Implementierungen zu sehen, sehen Sie sich unseren Beispielordner an.
[Mehr lesen]
Kalm verwendet die Umgebungsvariable NODE_DEBUG
. Beziehen Sie kalm
einfach in Ihren Wert ein.
Beispiel:
NODE_DEBUG=net,kalm node myApp.js
Kalm bietet Ereignisse, um zu verfolgen, wann Pakete von Routinen verarbeitet werden oder wann ein Rohrahmen empfangen wird.
Ereignis | Nutzlast | Beschreibung |
---|---|---|
error | Fehler | (Server, Client) Wird bei Fehlern ausgegeben. |
ready | Leere | (Server) Zeigt an, dass der Server jetzt aktiv auf neue Verbindungen wartet |
connection | Kunde | (Server) Zeigt an, dass ein Client erfolgreich eine Verbindung hergestellt hat |
connect | Kunde | (Client) Zeigt an, dass ein Client erfolgreich eine Verbindung hergestellt hat |
disconnect | Leere | (Client) Zeigt an, dass ein Client die Verbindung getrennt hat |
frame | RawFrame | (Client) Wird beim Empfang eines analysierten Vollbilds ausgelöst. |
npm test
npm run bench
Wenn Ihnen etwas einfällt, das Sie möchten, ein Problem eröffnen oder eine Pull-Anfrage einreichen, schauen wir uns das gerne an!
Dieses Projekt existiert dank aller Menschen, die dazu beitragen. [Beitragen].
Werden Sie ein finanzieller Spender und helfen Sie uns, unsere Gemeinschaft zu erhalten. [Beitragen]
Unterstützen Sie dieses Projekt mit Ihrer Organisation. Hier erscheint Ihr Logo mit einem Link zu Ihrer Website. [Beitragen]
Apache 2.0 (c) 2023 Frederic Charette