0
我有以下骆驼路由,它侦听ActiveMQ主题上的消息,并立即将它们发送到所有连接的Web套接字客户端。这工作正常,但只要初始化路由构建器就会连接到主题。从骆驼websocket连接/断开ActiveMQ主题连接/断开
from("activemq:topic:mytopic").routeId("routeid").to("websocket://test?sendToAll=true");
我需要的是只连接到该主题时,一个或多个客户端连接到网络插座。一旦没有更多的连接,我想停止听这个话题。这可能吗?
是的,这是正确的。我们可以考虑让一个from(websocket:test?events = onConnect,onDisconnect),以便您可以过滤事件,然后将其用作路由,然后您可以调用controlbus使用AMQ主题挂起/恢复其他路由。 –
@ClausIbsen这些事件的增加肯定会有帮助。将它添加到Atmosphere-websocket组件也是有意义的。在短期内,我认为我可以利用JMX功能轮询连接数量并相应地暂停路由。思考? –
是的,欢迎您登录JIRA:http://camel.apache.org/support.html。如果您可以在JMX中找到详细信息,那么您可以使用它来控制AMQ路线。因为您需要安排轮询JMX统计信息,所以有一个时间窗口,您有点落后。 –