整整一周都有些艰难,但Camel-Netty仍在努力解决问题。
TCP上下文源(服务定义)的设置如下 netty4:tcp:,sync = true,synchronous = true,clientMode = false,transferExchange = true,allowDefaultCodec = false,keepAlive = true,tcpNoDelay = true,decoders =#Decoders
Tcp上下文对象设置为
context.setTracing(true)
context.setStreamCaching(true)
设置路由配置
from(sourceInfo)
.process(<processor code>)
.filter(body().isNotNull())
.filter(body().isNotEqualTo(""))
.log("Message Body = [${body}]")
.multicast()
.parallelProcessing()
.inOnly("direct:forwardmessage")
.to("mock:closemessage")
.transform().constant("ACK");
//forward the Message body to Kafka.
from("direct:forwardmessage")
.to(targetInfo) ;
我希望此设置应该向TCP客户端返回一条响应消息(“ ACK”),并将消息发送到该端口。
但是它没有发生,因为客户端没有收到“ ACK”字符串作为服务响应。
使用Camel Netty TCP确实可行吗?还是我应该使用香草NIO套接字实现?
可以肯定,不是第一个出现此问题的人,因此需要帮助/建议来解决此问题。