问题标签 [node-amqp]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
node.js - 使用 node.js amqp 模块时如何将 AQMP 消息缓冲区转换为 JSON 对象?
我正在使用 node.js amqp 模块从队列中读取消息。以下是队列中有可用消息时调用的回调:
谢谢。
node.js - node-amqp 队列被破坏:通知订阅者
我将 node-amqp 和 rabbit 用于一些 pub/sub 工具。我想知道当某人/某物(在其他进程中)破坏了他们正在收听的队列时是否可以通知订阅者。
比如流程一:
现在,其他进程可能会破坏该队列。订阅者如何知道这一点?例如,流程二可以这样做:
我试图监听有效的事件“queueDeletedOk”,但它只在进程二中发出和接收,这正在破坏队列。尝试通过队列“关闭”事件也会发生同样的情况。
谢谢和最好的问候,
node.js - 如何从 node.js 检查 RabbitMQ 中是否存在交换?
我想从 node.js 检查是否存在特定的 RabbitMQ 交换。我正在使用 Mocha 作为测试框架。我已经编写了相同的代码,但我的期望似乎不正确。当没有交换时,我希望交换变量的值未定义,但事实并非如此。我正在使用 amqp 模块与 RabbitMQ 进行交互。以下是代码:
检查交易所是否存在的正确方法是什么?
谢谢。
node.js - 为什么当 node-amqp 出现问题时“关闭”事件?
(我正在使用 node-amqp 和 rabbitmq 服务器。)
如果出现问题,我试图猜测为什么我有一个关闭事件。例如,如果我尝试打开与队列的连接(参数错误),我会收到错误事件。这是完美的确定。
但是,在出现任何错误之后,我也会收到一个关闭连接(在这种情况下,可能是因为将失败的套接字关闭到队列)。之后,自动重新连接,我收到(初始)就绪事件。
问题:
如果出现问题,我会收到错误消息,但随后会出现“就绪”事件,它将重新执行 do_a_lot_of_things。我的方法错了吗?
此致
angularjs - node-amqp + socketio:如何同步队列订阅/取消订阅?
我有一个 angularjs 应用程序,在服务器端有 node 和 express。我也有 node-amqp 和 socket.io
我想实现以下行为
该应用程序有一个页面(路由,角度视图),显示带有实时数据的表格。数据使用 socket.io 和 amqp 实时更新,以从位于应用程序外部的 rabbitMQ 服务器流式传输数据。
当用户在浏览器上访问此页面/路由时
- 客户端发出一个套接字事件“订阅”</li>
- 服务器,在套接字事件“订阅”上,
- 声明一个兔子队列
- 将兔子队列绑定到交换器
- 订阅来自兔子队列的消息/数据
- 发出一个套接字事件“数据”,将数据发送回用户/客户端
当用户离开页面时,或者换句话说改变路线
- 客户端发出一个套接字事件“取消订阅”</li>
- 服务器,在套接字事件“取消订阅”上,
- 从队列中取消订阅
我的问题是:如何确保 queue.subscribe 和 queue.unsubscribe 是同步的?如果用户执行快速的路由更改序列: visit/leave/visit/leave/visit/leave 订阅和取消订阅的顺序有时会颠倒,在新订阅完成之前,服务器会在之前的订阅第二次取消订阅。有什么建议吗?这是我尝试过的,但不起作用:
客户端:controller.js
服务器端:server.js
服务器 console.log 消息:(visit#3 和 leave#3 不同步)
node.js - Node-amqp - 在 X 次尝试后拒绝消息
如何实现在几次可配置的重新排队尝试后拒绝消息的机制?
换句话说,如果我订阅了一个队列,我想保证相同的消息不会重新传递超过 X 次。
我的代码示例:
node.js - 持久队列:在 node-amqp 中序列化/反序列化队列对象
我正在使用该node-amqp
模块来管理rabbitmq 订阅。具体来说,我为每个用户/会话分配了一个独占/私有队列,并通过 REST 接口提供绑定方法。即“将我的队列绑定到这个exchange/routing_key 对”,以及“取消绑定我的队列到这个exchange/routing_key 对”。
这里的挑战是避免在内存中保留对队列对象的引用(例如,在具有模块范围的对象中)。
每次我需要它时简单地从连接中检索队列本身证明很困难,因为队列对象在内部保持绑定标签,可能是为了避免违反amqp 0.9.1 参考中的以下内容:
客户端不得尝试解除绑定不存在的队列。错误代码:未找到
我尝试使用 connect-mongo 将队列对象简单地设置为会话对象的属性,因为它在其属性上使用 JSON.stringify/JSON.parse。不幸的是,由于循环结构,队列对象无法“字符串化”。
从 node-amqp 模块持久化队列对象的最佳实践是什么?是否可以序列化/反序列化?
node.js - 通过 websocket 发送 RabbitMQ 消息
寻找一些代码示例来解决这个问题:-
想编写一些代码(Python 或 Javascript)作为 RabbitMQ 队列的订阅者,以便在接收到消息时通过 websocket 将消息广播到任何连接的客户端。
我查看了 Autobahn 和 node.js(使用“ amqp ”和“ ws ”),但无法让事情按需要工作。这是使用 node.js 的 javascript 中的服务器代码:-
使用此代码,我可以成功订阅 Rabbit 中的队列并接收发送到队列的任何消息。同样,我可以将 websocket 客户端(例如浏览器)连接到服务器并发送/接收消息。但是......如何在指示的点将 Rabbit 队列消息的有效负载作为 websocket 消息发送(“现在如何通过 WEBSOCKETS 发送”)?我认为这与陷入错误的回调有关,或者它们需要以某种方式嵌套......?
或者,如果这可以在 Python 中更容易地完成(通过 Autobahn 和 pika),那就太好了。
谢谢 !
node.js - node-amqp,多个绑定回调
我想要一些最佳实践的建议。在通过它轮询数据之前,我需要等待绑定完成,其中大部分是在返回客户端的过程中并行发生的。但是如果已经有一个绑定操作正在进行,发出另一个将替换回调。
如果我想修补 node-amqp 以支持每个绑定操作的单独回调,我将如何进行?
node.js - 如何在nodejs amqp中获取现有队列参数?
我正在使用使用 amqplib 的 send.js:
和一个使用 amqp 的 receive.js:
问题是,队列的默认选项不匹配。在使用 amqplib 发送后尝试使用 amqp 读取或在使用 amqp 订阅后使用 amqplib 发送时,我收到 406 precondition failed 错误。只要它有效,我很乐意在任何一种配置上进行调整。