【发布时间】:2016-02-26 15:55:58
【问题描述】:
我想在客户端模式下使用 apache camel netty 连接。而且这个客户端也没有处于同步模式。我提供了以下配置来实现这一点,但 appache 创建了两个到服务器的连接,一个用于接收消息,一个用于回复它。我们如何在这种模式下使用 netty 连接器。
from("netty4:tcp://localhost:7000?sync=false&allowDefaultCodec=false&encoder=#stringEncoder&decoder=#stringDecoder&clientMode=true&reconnect=true&reconnectInterval=1000")
.process(new Processor() {
public void process(Exchange exchange) throws Exception {
exchange.getOut().setBody("Hello " + exchange.getIn().getBody());
}
})
.to("netty4:tcp://localhost:7000?sync=false&allowDefaultCodec=false&encoder=#stringEncoder&decoder=#stringDecoder&clientMode=true");
在 Hercules Utitly 中,我看到了用于此请求处理的两个连接
11:00:51 AM: 127.0.0.1 Client connected
11:00:51 AM: 127.0.0.1 Client connected
【问题讨论】:
-
嗯,您正在接受端口 7000 上的连接并发送到端口 7000 上的同一主机..为什么?
-
因为我必须使用相同的端口来请求和回复事务。
-
抱歉,这有点混乱。你到底想要达到什么目的?从外观上看,您在端口 7000 上接收,然后再次发布到端口 7000,这意味着您的“发件人”将被触发并发布到您的“收件人”,该收件人再次发送到您的“发件人”。这真的是你想要的吗?
-
让我详细解释一下。我需要一个连接到服务器的客户端。但是服务器也可以在该连接的套接字上向我发送消息。然后我正在处理消息并在同一个套接字上回复。
-
好的,但这不是你在那里做的。您是在告诉服务器调用自己。
标签: tcp apache-camel netty