当前位置: 首页 > 面试题库 >

与Node.js一起使用哪个websocket库?

孙成益
2023-03-14
问题内容

当前,有大量用于node.js
的websocket库,最受欢迎的似乎是:

  • 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

但是我找不到它们之间的任何可靠的具体比较……显然Socket.io很棒,但是已经过时并且构建失败。ws和websocket-
node都声称它们是最快的。而且engine.io似乎是新的,但比轻巧的武器要重得多。

如果我们或某人可以汇总一个答案,作为使用哪个套接字库,何时使用以及它们之间的比较的指南,那将是惊人的。


问题答案:

通过这个社区Wiki答案获得成功。随时根据您的改进来编辑我。

  • ws WebSocket服务器和node.js的客户端。最快的库之一,即使不是最快的库。

  • websocket-node WebSocket服务器和node.js的客户端

  • 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 WebSocket服务器和客户端(node.js和其他客户端)+浏览器客户端+最新到最旧的后备

  • faye WebSocket服务器和node.js等客户端和客户端+浏览器客户端+后备+支持其他服务器端语言

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

  • socketcluster WebSocket服务器群集,它利用计算机上的所有CPU内核。例如,如果您要使用具有32个内核的xlarge Amazon EC2实例,则您将能够处理单个实例几乎32倍的流量。

  • primus为上述大多数库提供一个通用API,以实现所有库的轻松切换和稳定性改进。

何时使用:

  • 当您要在客户端上使用本机WebSocket实现时,请使用基本的WebSocket服务器,请注意浏览器不兼容

  • 在关注浏览器后备时使用后备库

  • 在关注频道时使用功能齐全的库

  • 当您不知道要用什么时,可以使用primus;当由于项目需求变化或需要额外的连接稳定性而需要切换框架时,则不打算重写应用程序。

在哪里测试:

Firecamp是针对SocketIO,WS和所有主要实时技术的GUI测试环境。在开发实时事件时对其进行调试。



 类似资料:
  • 问题内容: 我想在我的node.js脚本中使用phantomjs。有一个phantomjs- node 库。.但是不幸的是,作者使用了这个奇怪的coffee脚本代码来解释他在做什么: 现在,如果我直接将phantomjs与javascript一起使用,它将看起来像这样: 所以基本上我想用普通的javascript编写上面代码的第一段代码(通过阅读coffee脚本文档 ..这就是我所做的: 不幸的是

  • 问题内容: 是否可以使用Node.js在服务器端使用jQuery选择器/ DOM操作? 问题答案: 似乎有一个重大更新,导致原来的答案不再起作用。我找到了这个答案,解释了现在如何使用。我已经在下面复制了相关代码。 注意:原始答案没有提及你还需要使用安装

  • 问题内容: 如何将chmod与Node.js一起使用? 程序包中有一个方法应该执行此操作,但是我不知道第二个参数是什么。 fs.chmod(路径,模式,[回调]) 异步chmod(2)。除了可能的异常外,没有其他参数被赋予完成回调。 fs.chmodSync(路径,模式) 同步chmod(2)。 (来自Node.js文档) 如果我做类似的事情 没有任何反应(文件未更改为该模式)。 也不起作用。 我

  • 问题内容: 我正在通过GoDaddy设置SSL,以与AWS EC2上的node.js服务器一起使用。我一直无法启动它。 这是我尝试过的: 打算用于域:files.mysite.com 在服务器上,我运行: 然后,我得到CSR:vim files.mysite.csr 我从以下位置复制并粘贴: 最后还有一个空行,我使用rekey离开并粘贴到GoDaddy界面中。 然后,我下载godaddy密钥,该密

  • 我想使用AdminSDK使用firebase存储,因为使用gcd需要付费帐户。 我曾尝试过在没有付费帐户的情况下使用gcd,但除了使用gcd存储非常复杂之外,我没有找到一种方法。 我试图在Firebase留档中找到答案,但提到的功能留档根本不起作用。所以我决定发布这个问题的答案,这样它就可以帮助其他人

  • 问题内容: 我想使用standard从node.js发出传出HTTP调用。但是我无法直接从网络访问远程服务器,需要通过代理。 如何告诉node.js使用代理? 问题答案: 关于使用HTTP代理,Tim Macfarlane 的答案很接近。 使用HTTP代理(用于非安全请求)非常简单。您连接到代理并正常发出请求,只是路径部分包含完整的url,并且主机标头设置为您要连接的主机。 Tim与他的回答非常接