Gibt es eine leichte Alternative zu socket.io nur für den Transport?
Ich habe eine node.js-Anwendung, die socket.io einfach als Nachrichtentransport verwendet. Meine Anwendung verwaltet Sitzungen und Nachrichtenrouting allein, ich verwende einfach socket.io für den Transport - websocket + was auch immer die Standard-Fallback für ältere Browser ist.
Die neuere Version von socket.io scheint immer schwerer zu werden, jetzt kommt Redis-Unterstützung, die ich absolut nicht brauche.
Das Modul ws ist erstaunlich schnell (siehe benchmarks ), gut getestet, sehr, sehr, sehr leicht, aber ohne dass man die Abstürze selbst machen müsste, und darüber hinaus keinen Event-Emitter . Aber es ist erstaunlich, nur zu transportieren, wenn es das ist, was Sie wollen. Wenn du die "Sitzung" eines armen Mannes willst, befestige einfach etwas an das ws-Objekt:
%Vor%Jetzt fehlt nur noch ein Event-Emitter ...
Schauen Sie sich sock.js an - es versucht, browserübergreifende Web-Sockets api und nichts mehr zu implementieren.
Für Node.js können Sie versuchen ws + ws-wrapper + ws-server-wrapper . ws-wrapper ist eine Lightweight-Bibliothek, die WebSockets einige Event-Handler-Funktionen hinzufügt ... ähnlich wie in socket.io. Außerdem erhalten Sie Promise-basierte Anfragen und Namensräume.
Wie von anderen erwähnt, ist das ws -Modul sehr schnell, leicht und wird sogar von socket.io unter der Haube verwendet. Native WebSockets werden jetzt von allen modernen Browsern unterstützt , so dass es albern erscheint, andere Transporte für die meisten Echtzeit-Webanwendungen zu unterstützen.
ws-wrapper
implementiert nicht einmal automatisches Reconnect. Wenn Sie das möchten, lesen Sie Diese Wiki-Seite beschreibt einen exponentiellen Backoff-Ansatz
Schließlich ist ws-server-wrapper die Bibliothek für die Serverseite. Sie können beispielsweise folgende Aktionen ausführen: Senden einer Nachricht an alle verbundenen WebSockets, Abhören von Ereignissen von allen WebSockets usw.
Disclaimer: Ich bin der Autor von ws-wrapper. :)