这些AMQP客户端库有哪些区别? 哪一个是最受推荐的? 主要区别是什么?
我是编写bramqp库的人。因此,我从一开始就承认我可能有点偏见。:P
在我看来,只要你知道规范,bramqp应该可以正常工作。否则,请使用amqp.node
以下是可用于node.js的AMQP库。
amqplib / amqp.node - 支持promise方式,仍在更新,看起来相当稳定且易用
bramqp - 提供完整的低级别访问AMQP功能,不建议初学者使用
amqp-coffee - 类似于amqp/node-amqp的coffeescript实现
amqp / node-amqp - 流行的,固定API,更新频率较低,存在一些奇怪的错误,稳定但受限制
以下库使用上述其中一个库,同时提供更易用的接口或添加功能
rabbit.js 使用amqplib / amqp.node
wascally 使用amqplib / amqp.node
amq 使用amqplib / amqp.node
amqpea 使用bramqp
easy-amqp 使用 amqp/node-amqp。
rabbus 使用 wascally。
我还将单独添加node-amqp10,因为它可以连接到 amqp 1.0 服务器。
如果还有其他需要添加的,请告诉我。
我曾经使用过这两个库。乍一看,node-amqp(amqp)似乎更加适合,但实际上它有很多漏洞却没有人修复。例如:
我使用www.robomq.io提供的代理进行了测试,它是一个很好的代理,所以这个问题应该是库的问题。在Node.js中实现一个完美的库确实很难。
顺便说一下,你可以在https://github.com/robomq/robomq.io/tree/master/sdk/AMQP/Node.js中找到使用amqp.node(amqplib)的5种场景下的完整示例代码,文档在http://robomq.readthedocs.org/en/latest/one-one/#nodejs。
https://github.com/guidesmiths/rascal#rascal 值得一提。它是基于 amqplib 构建的,具有一组有用的功能,如自动重连逻辑、基于配置的订阅/发布和良好的 TDD 支持。
刚开始自学rabbitmq。我从其他博客中了解到ampq.node很受欢迎。另一个我发现的(未经测试)是来自wascally。https://github.com/LeanKit-Labs/wascally