2

所以我们的团队最近在我们的 jruby on rails 应用程序中实现了扭矩箱。这样做的目的是能够从流实时数据的外部源接收队列/主题消息。

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

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

谢谢。

4

2 回答 2

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 中的效果如何。

于 2013-09-07T17:48:10.027 回答
0

我认为 stomplets 是完成这项任务的好方法。在 Rails 应用程序中,您应该使用 ruby​​ base stomp 客户端,在浏览器中使用 javascript base stomp 客户端。在 Rails 中只是发送数据,在浏览器中只是接收。您可以在扭矩箱文档 http://torquebox.org/documentation/2.0.0/stomp.html中找到更多详细信息

于 2013-05-30T13:12:00.820 回答