gpt4 book ai didi

java - 连接到 TCP 并使用 JMS 主题

转载 作者:太空宇宙 更新时间:2023-11-04 13:59:38 24 4
gpt4 key购买 nike

  • 我有一个 JMS 主题。数据不断被写入该主题。
  • 我想公开一个 TCP 监听端口,该端口在连接时会显示数据流。
  • 数据是主题的最新内容

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

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

有人做过这样的事情吗?

使用消息监听器会很棒,但我只想在建立 tcp 连接时使用该主题。

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

谢谢。

最佳答案

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

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

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

当客户端关闭连接时,你会得到一个连接关闭事件;停止主题消费者并注销它。

关于java - 连接到 TCP 并使用 JMS 主题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29436337/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com