当前位置: 首页 > 知识库问答 >
问题:

如何在Spring Integration中将TCP出站网关扩展为只接收消息

景德海
2023-03-14

我正在开发一个web应用程序,通过Spring Integration支持TCP连接。它有两个功能。

    null
    null

因此,我认为协作TCP出站和入站通道适配器是困难的。然后,对TCP出站网关进行扩展,增加只接收消息的功能。我应该怎么延长?(还是你有其他想法?)

提前谢了。

共有1个答案

许正平
2023-03-14

如果您可以确定消息类型,类似这样的方法应该会起作用...

public class ExtendedTcpOutpboundGateway extends TcpOutboundGateway {

    private final MessageChannel unsolicitedMessageChannel;


    public ExtendedTcpOutpboundGateway(MessageChannel unsolicitedMessageChannel) {
        this.unsolicitedMessageChannel = unsolicitedMessageChannel;
    }

    @Override
    public boolean onMessage(Message<?> message) {
        if (isUnsolicitedMessage(message)) {
            this.messagingTemplate.send(this.unsolicitedMessageChannel, message);
            return false;
        }
        else {
            return super.onMessage(message);
        }
    }

    private boolean isUnsolicitedMessage(Message<?> message) {
        // TODO Add logic here to determine message type
        return false;
    }

}

如果不能区分,就不清楚如何实现您的需求。

 类似资料:
  • 我是这个Spring集成和JMS的新手,我开始使用它。在这里,我想通过activemq创建普通的jms消息,并通过spring inbound适配器(消息驱动)接收它。 以下是我的spring配置文件 这是我的测试课。 } 但问题是我不能保证交货。有些时候程序不能接收消息,有些时候它成功了,但有一些警告,如 无法刷新目标“queue://MSG_QUEUE”的JMS连接,将在5000毫秒后重试,原

  • 想改进这个问题吗 通过编辑这篇文章,更新问题,以便用事实和引文来回答。 我计划在AWS上托管一个静态网站(超文本标记语言,css),包括S3、Route 53和CloudFront。我想知道缩放问题是否有任何潜力,例如,如果有100k并发请求出现在网站上。在此基础上,您有什么建议吗? 谢谢你的建议!!

  • 我正在实现一个tcp客户端,它将向服务器发送请求并期望响应。但是当客户端第一次连接到服务器时,服务器会发送一个hello msg,通过tcp出站网关,它期望发送然后接收。我怎么做接收(只有当第一次连接)然后做我通常的发送和接收逻辑?如果我需要保持连接存活,有没有办法通过某个调度任务将keep alive msg发送到相同的连接?

  • 我按照以下说明创建了一个类来扩展selenium网格:https://www.swtestacademy.com/extend-selenium-grid连接selenium节点不是问题(只要我扩展了selenium Version3.12[3.141.59不允许连接])。我的问题是无法连接appium节点。 [Appium]向网格注册的请求不成功:500-“\n\n\n错误500服务器错误\n\

  • 我正在创建客户端-服务器系统,应该能够在稳定的网络工作。它假设连接可能会在某一时间中断,然后系统必须重新连接并继续其工作。我正在使用Netty,遇到了一个问题:我们如何知道我们发送的消息被另一台主机收到了? 我在想,为此目的,可以使用ChannelFuture,如果它在附加的未来侦听器中失败,我可以简单地尝试再次发送消息: 但是当我这样做时,我注意到,侦听器从不打印错误。(我通过在系统几乎不工作时

  • 如果我不关闭套接字: 客户端没有输出。服务器从不发送消息,或者客户端从不接收消息。 有人知道发生这种情况的可能原因吗?客户端使用一个线程接收消息,一个线程发送消息。客户端套接字在主客户端线程中创建,因此接收者和发送者线程使用当前套接字进行通信。 提前谢了。