当前,有大量用于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测试环境。在开发实时事件时对其进行调试。