连接/断开camel websocket连接/断开上的ActiveMQ主题
我有以下camel路由,它侦听ActiveMQ主题上的消息,并立即将它们发送到所有连接的web套接字客户端。这工作正常,但只要初始化了route builder,就可以与主题建立连接连接/断开camel websocket连接/断开上的ActiveMQ主题,websocket,apache-camel,activemq,Websocket,Apache Camel,Activemq,我有以下camel路由,它侦听ActiveMQ主题上的消息,并立即将它们发送到所有连接的web套接字客户端。这工作正常,但只要初始化了route builder,就可以与主题建立连接 from("activemq:topic:mytopic").routeId("routeid").to("websocket://test?sendToAll=true"); 我只需要在一个或多个客户端连接到web套接字时连接到主题。一旦没有更多的联系,我想停止听这个话题。这可能吗?根据我的说法,没有合适的方法
from("activemq:topic:mytopic").routeId("routeid").to("websocket://test?sendToAll=true");
我只需要在一个或多个客户端连接到web套接字时连接到主题。一旦没有更多的联系,我想停止听这个话题。这可能吗?根据我的说法,没有合适的方法来做到这一点。实现这一点的唯一方法是重写Jetty WebSocket代码。一旦覆盖Jetty Websocket代码,您就可以灵活地在open和close Websocket中编写自己的自定义代码
- 在open websocket中维护所有websocket客户端的列表。检查是否关闭websocket并将其从列表中删除,以了解有多少已连接或断开连接。或者在打开和关闭的websocket上放置一个计数器
- 关闭所有websocket客户端后,暂停路由,以便您的消息保留在主题或队列中李>
- 如果任何客户端连接到websocket,请恢复路由,以便消息到达所连接的特定客户端