我有一个JMS主题。数据一直在写入该主题。
我想公开一个tcp侦听端口,该端口在连接时会显示数据流。
数据是该主题的最新内容


基本上,我想使用tcp端口在jms主题上执行“ tail -f”。因此,查看主题内容更像“ telnet server1 40000”,而不是“ tail -f”。

目前,我正在考虑使用netty.io,但不确定spring-integration是否可以处理它。

有人做过这样的事情吗?

使用消息监听器会很好,除了,我只想在建立TCP连接时使用该主题。


服务器启动。
该主题没有任何内容
客户端#1连接到TCP端口40000,正在将主题字符串内容写入套接字
客户端#2连接到TCP端口40000,正在将主题字符串内容写入套接字
客户端#1和客户端#2都获得相同的数据
目前有2位该主题的消费者
客户端#2断开连接
该主题的消费者数量回到1
客户端#1仍获取数据流


谢谢。

最佳答案

通过打开JMS主题的使用者并将消息流式传输到连接,设置响应TcpConnectionOpenEvent的服务非常容易。

您需要入站和出站TCP适配器。

当入站适配器检测到新连接时,它将发出事件。使用ApplicationListener(或什至入站适配器)捕获事件,捕获连接ID,在主题上打开使用者并开始将消息发送到出站适配器(设置ip_connectionId,以便适配器知道将消息路由到何处)。

当客户端关闭连接时,您将收到一个连接关闭事件。停止主题使用者并取消注册。

10-06 09:13
查看更多