448

現在、node.js 用の websocket ライブラリは多数ありますが、最も人気があるのは次のようです。

しかし、私はそれらのいずれかの間にしっかりした具体的な比較を見つけることができません...明らかにSocket.ioは素晴らしかったですが、かなり時代遅れになり、ビルドに失敗しています。ws と websocket-node の両方が最速であると主張しています。そして、engine.io は新しいように見えますが、軽量の aletarntives よりもかなり重いです。

私たちまたは誰かが、どのソケット ライブラリをいつ、どのソケット ライブラリを使用するか、およびそれらを比較するためのガイドとして機能する回答をまとめることができれば、すばらしいことです。

4

3 に答える 3

408

このコミュニティ wikiの回答でボールを転がします。あなたの改善で私を編集してください。

  • node.js のws WebSocket サーバーとクライアント。最速のライブラリではないにしても、最速のライブラリの 1 つです。

  • websocket-node node.js の WebSocket サーバーとクライアント

  • websocket-driver-node WebSocket サーバーおよびクライアント プロトコル パーサー node.js - faye-websocket-node で使用

  • faye-websocket-node node.js の WebSocket サーバーとクライアント - faye と sockjs で使用

  • socket.io node.js の WebSocket サーバーとクライアント + ブラウザーのクライアント + (v0 には最新から最も古いフォールバックがあり、Socket.io の v1 は engine.io を使用します) + チャネル - stack.io で使用されます。クライアント ライブラリは、切断時に再接続を試みます。

  • sockjs node.js などの WebSocket サーバーとクライアント + ブラウザー用のクライアント + 最新から最古のフォールバック

  • faye WebSocket サーバーと node.js などのクライアント + ブラウザーのクライアント + フォールバック + 他のサーバー側言語のサポート

  • WebSocket と TCP 接続を処理し、データ同期、pub/sub、および要求/応答を提供するdeepstream.ioクラスタ化可能なリアルタイム サーバー

  • socketclusterマシン上のすべての CPU コアを利用する WebSocket サーバー クラスター。たとえば、32 コアの特大 Amazon EC2 インスタンスを使用する場合、1 つのインスタンスでほぼ 32 倍のトラフィックを処理できます。

  • primus上記のほとんどのライブラリに共通の API を提供し、簡単に切り替えて安定性を向上させます。

いつ使用するか:

  • クライアント側でネイティブの WebSocket 実装を使用する場合は、基本的な WebSocket サーバーを使用します。ブラウザーの非互換性に注意してください。

  • ブラウザーのフォールバックが気になる場合は、フォールバック ライブラリを使用します。

  • チャネルに関心がある場合は、フル機能のライブラリを使用してください

  • プロジェクト要件の変更や追加の接続安定性が必要なためにフレームワークを切り替える必要がある場合に、何を使用すればよいかわからない場合、アプリケーションを書き直す気がない場合は primus を使用してください。

テストする場所:

Firecampは、SocketIO、WS、およびすべての主要なリアルタイム テクノロジー用の GUI テスト環境です。開発中にリアルタイム イベントをデバッグします。

于 2013-05-06T06:20:40.067 に答える