使用Torquebox向浏览器发送消息

时间:2013-04-10 20:16:38

标签: websocket jrubyonrails hornetq torquebox

因此,我们的团队最近在我们的轨道应用中实施了扭矩箱。这样做的目的是能够从外部源接收队列/主题消息,该消息是流式传输实时数据。

我们已经设置了我们的队列/主题,他们正在接收消息而没有问题。我们要采取的下一步是在浏览器上获取这些消息。

所以我们开始考虑利用踩踏的力量。但是我们遇到了一些问题。从文档中可以看出,使用stomp + websockets的目的是从客户端接收消息并将这些消息推送到其他客户端。但我们希望在队列中接收消息,然后使用websockets将这些消息推送到客户端。这可能吗?或者我们是否必须实现不同的技术,如Pusher或socket.io,以便将队列/主题消息发送到浏览器?

感谢。

2 个答案:

答案 0 :(得分:0)

我认为stomplets是这项任务的好方法。在rails应用程序中,您应该在浏览器javascript base stomp客户端中使用ruby base stomp客户端。在rails中只发送数据,并在浏览器中接收。 更多细节如何在torquebox文档中找到 http://torquebox.org/documentation/2.0.0/stomp.html

答案 1 :(得分:0)

确实可以将消息直接从服务器推送到客户端。我花了很多时间去寻找它,因为它没有直接列在文档中。他们的博客列举了如何使用websockets构建聊天客户端的示例。

http://torquebox.org/news/2011/08/23/stomp-chat-demo-part3/

基本上,您使用inject方法选择要发布到哪个频道,然后在返回的对象上使用publish方法来实际发送消息。本文中的代码摘录应该指向正确的方向。

inject( '/topics/chat' ).publish( message, 
                                  :properties=>{ 
                                    :recipient=>username, 
                                    :sender=>'system' 
                                   } )

看起来:properties与邮件标题相同。在接下来的几天里,我将对此进行研究,看看它在Rails中的效果如何。