目前有plethora of websocket libraries个节点.js,最受欢迎的似乎是:

然而,我找不到他们之间任何坚实的具体比较...

如果我们或其他人能够给出一个答案,作为使用哪个套接字库、何时使用以及它们之间的比较的指南,那将是一件令人惊讶的事情.

推荐答案

用这community wiki个答案开始吧.你的进步让我们尽情享受吧.

  • ws

  • websocket-node

  • websocket-driver-node WebSocket服务器和客户端协议解析器节点.js-用于faye websocket节点

  • faye-websocket-node个用于节点的WebSocket服务器和客户端.js-用于faye和sockjs

  • socket.io

  • sockjs

  • faye个用于节点的WebSocket服务器和客户端.js和其他+浏览器客户端+回退+对其他服务器端语言的支持

  • deepstream.io个集群式实时服务器,用于处理WebSocket&;TCP连接,并提供数据同步、发布/订阅和请求/响应

  • socketcluster WebSocket服务器集群,它使用您机器上的所有CPU核心.例如,如果您使用32核的xlarge Amazon EC2实例,您将能够在单个实例上处理几乎32倍的流量.

  • primus为上述大多数库提供了一个通用API,以方便切换并提高所有库的稳定性.

何时使用:

  • 使用基本WebSocket服务器当你想在客户端使用原生WebSocket实现时,要小心browser incompatibilities

  • 当您关心浏览器回退时,请使用回退库

  • 当你关心频道时,请使用功能齐全的库

  • 当你不知道该使用什么,当你因为项目需求的变化而需要切换框架或者需要额外的连接稳定性时,没有心情重写你的应用程序时,可以使用primus.

测试地点:

Firecamp是SocketIO、WS和所有主要实时技术的GUI测试环境.在开发时调试实时事件.

Node.js相关问答推荐

postman “发送请求……”永远

当我使用 uuid 代码意外崩溃,然后工作正常?

使用中的端口代码:'EADDRINUSE',即使在 kill 命令之后

node.js 中 pdfkit-tables 中的垂直线

在使用 vue cli 3 创建的项目中,在哪里可以找到或如何设置 htmlWebpackPlugin.options.title?

Node Sass 还不支持你当前的环境:Windows 64-bit with Unsupported runtime (88)

Javascriptpromise 好奇心

是否有 Angular / Angular-CLI 和 Node.js 的兼容性列表?

错误消息:MongoError: bad auth Authentication failed through URI string

Nodemon 错误:已达到文件观察者数量的系统限制

mac 中缺少对 /usr/local/lib/node_modules 的写访问权限

如何在 Nest.js 中使用查询参数?

使用 pm2 编程 api 重命名进程

如何使用 nvm 更改节点版本

package.json 中的节点引擎 8.x 或 10.x

Windows 10 中 NVM 的访问被拒绝问题

Node.js puppeteer - 如何设置导航超时?

Node.js 中的同步请求

错误:EACCES:权限被拒绝,访问“/usr/local/lib/node_modules”

使用绝对路径导入组件时,Jest 给出“找不到模块”