我正在努力弄清楚如何在rabbitmq和em-websocet之间进行沟通。
我想在队列的rails网页上放置来自ruby的消息,并让队列处理程序处理消息,即使浏览器已关闭。如果浏览器保持打开状态,我希望队列处理程序的结果将json传递回浏览器。
我确实找到this,但github页面说它已被删除。有人能指出我正确的方向吗?
答案 0 :(得分:1)
从我可以收集到的内容中,你有一个RabbitMQ队列,一种向该队列添加项目的方法,一种处理添加到该队列的项目,你基本上想要通知浏览器该队列的进度
有两种主要方法可以解决这个问题:
作为队列处理器的最终操作,通过消息传递总线将项目/消息发布到正在侦听该消息总线的em-websocket实例。
如果您可以向RabbitMQ添加功能,那么您可以在RabbitMQ中进行发布,作为后处理挂钩或类似的东西。 (注意,我不太了解RabbitMQ,说你绝对可以这样做。)
或者使用#1,您可以使用Pusher.com或类似服务来卸载WebSocket连接的处理。然后,从队列处理器中,您将对该服务的API进行发布调用。
在使用Pusher的情况下,如果您发布到不再存在的通道/套接字(有任何连接),则该消息将被丢弃。
希望这会有所帮助。如果您在设置基本的em-websocket服务器时需要任何帮助,请告诉我。