Saat ini ada banyak perpustakaan websocket untuk node.js, yang paling populer adalah:
- https://github.com/Worlize/WebSocket-Node
- https://github.com/einaros/ws
- https://github.com/LearnBoost/engine.io
- https://github.com/learnboost/socket.io
- https://github.com/sockjs
Namun saya tidak dapat menemukan perbandingan konkret yang solid di antara mereka ... Rupanya Socket.io mengagumkan, tetapi telah menjadi cukup tanggal dan telah gagal membangun. Baik ws dan websocket-node mengklaim mereka yang tercepat. Dan engine.io tampaknya baru, tetapi jauh lebih berat daripada yang lebih ringan.
Akan luar biasa jika kita atau seseorang dapat menyusun jawaban yang berfungsi sebagai panduan tentang perpustakaan soket yang digunakan dan kapan, serta perbandingan di antara mereka.
Jawaban:
Dapatkan bola bergulir dengan jawaban wiki komunitas ini . Jangan ragu untuk mengedit saya dengan peningkatan Anda.
adalah server WebSocket dan klien untuk node.js. Salah satu perpustakaan tercepat jika bukan yang tercepat.
websocket-node WebSocket server dan klien untuk node.js
websocket-driver-node WebSocket server dan protokol klien parser node.js - digunakan dalam faye-websocket-node
faye-websocket-node WebSocket server dan klien untuk node.js - digunakan dalam faye dan sockjs
socket.io server WebSocket dan klien untuk node.js + klien untuk browser + (v0 memiliki fallback terbaru ke terlama, v1 dari Socket.io menggunakan engine.io) + saluran - digunakan dalam stack.io. Pustaka klien mencoba menyambung kembali setelah terputus.
sockjs WebSocket server dan klien untuk node.js dan lainnya + klien untuk browser + terbaru ke fallback tertua
faye WebSocket server dan klien untuk node.js dan lainnya + klien untuk browser + fallbacks + dukungan untuk bahasa sisi server lainnya
server realtime deepstream.io clusterable yang menangani koneksi WebSockets & TCP dan menyediakan sinkronisasi data, pub / sub dan permintaan / respons
socketcluster WebSocket server cluster yang menggunakan semua core CPU pada mesin Anda. Misalnya, jika Anda menggunakan instance Amazon EC2 xlarge dengan 32 core, Anda akan dapat menangani hampir 32 kali lalu lintas pada instance tunggal.
primus Menyediakan API umum untuk sebagian besar perpustakaan di atas untuk kemudahan switching + peningkatan stabilitas untuk semuanya.
Kapan harus menggunakan:
menggunakan server WebSocket dasar ketika Anda ingin menggunakan implementasi WebSocket asli di sisi klien, waspadai ketidakcocokan browser.
gunakan pustaka fallback saat Anda peduli dengan fallback browser
gunakan pustaka berfitur lengkap ketika Anda peduli tentang saluran
gunakan primus ketika Anda tidak tahu apa yang harus digunakan, tidak berminat untuk menulis ulang aplikasi Anda ketika Anda perlu beralih kerangka kerja karena mengubah persyaratan proyek atau membutuhkan stabilitas koneksi tambahan.
Tempat menguji:
Firecamp adalah lingkungan pengujian GUI untuk SocketIO, WS dan semua teknologi real-time utama. Debug acara real-time saat Anda sedang mengembangkannya.
sumber
ws
.Pembaruan: Jawaban ini sudah usang karena versi perpustakaan yang lebih baru yang disebutkan dirilis sejak saat itu.
sumber
npm ws adalah jawaban untuk saya. Saya menemukan itu kurang mengganggu dan lebih lurus ke depan. Dengan itu juga sepele untuk mencampurkan websockets dengan layanan lainnya. Kode sederhana bersama pada pos ini.
sumber
ws
, sepertiws://myserver.com
. Dan ya, mereka dapat dikonfigurasi untuk dilayani menggunakan 80 dan 443 port juga. Menggunakan proxy terbalik seperti nginx, Anda dapat merutekanWebSocket
url protokol ke port lain dari protokol HTTP normal.express-ws
memungkinkan untuk menambahkanws
rute di aplikasi kilat.