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

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

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

推荐答案

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

  • ws

  • websocket-node

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

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

  • socket.io

  • sockjs

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

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

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

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

何时使用:

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

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

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

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

测试地点:

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

Node.js相关问答推荐

聚合发布/订阅消息

Sveltekit停靠的应用程序找不到从Build导入的包

如何从shell脚本中计算ecmascript模块?

如何在Angular jest测试中调用Nodejs的垃圾收集? node v20的测试速度慢且内存泄漏

如何使用多个参数完成

DynamoDB 分页数据检索

Cypress.io - 如何等待返回调用属性的方法的结果?

与诗乃一起嘲笑奈克斯

如何配置 Nginx React 和 Express

为什么 client.on("messageCreate") 的 TextChannel 中缺少 nsfw 属性?

使用正则表达式查找文档,但输入是数组

在mongodb中只查询整数

在 Express-js 中使用路由

在 Passport 策略回调中获取请求对象

如何在 Node.js 中等待子进程完成

ChildProcess 关闭、退出事件之间的区别

使用 ES6 语法和动态路径导入模块

nodeJS - 如何使用 express 创建和读取会话

fs.createWriteStream 不会立即创建文件?

NodeJS 中的 HTTPS 请求