传入 tcp 的简单处理
Simple handling of incoming tcp
开始于:
http://www.typesafe.com/activator/template/camel-http
我做了一个简单的路线:
import org.apache.camel.scala.dsl.builder.RouteBuilder
class SocketPost extends RouteBuilder {
"""netty:tcp://localhost:12000""" ==> {
id("hello socket")
log("hello")
to("http4:localhost:9000/")
}
}
并添加:
context.setUseMDCLogging(true)
context.addRoutes(new SocketPost())
context.start()
我可以远程登录到 localhost:12000 并输入一些数据然后断开连接,但是我的 google 技能使我无法处理数据。我只在连接时收到日志:
09:48:43 DEBUG org.apache.camel.component.netty.DefaultServerPipelineFactory Using OrderedMemoryAwareThreadPoolExecutor with core pool size: 16
否则一切静默。我希望通过 telnet 输入的数据像教程中一样发布到 localhost:9000。
netty组件默认不是基于文本的,而是使用java对象序列化。那是因为旧的 tcp 组件 camel-mina 的另一个有默认行为,我们希望 netty 是相似的。
因此您需要通过设置选项 textline=true
将端点配置为基于文本的端点。您可以在以下位置找到有关此选项的更多详细信息:http://camel.apache.org/netty
开始于:
http://www.typesafe.com/activator/template/camel-http
我做了一个简单的路线:
import org.apache.camel.scala.dsl.builder.RouteBuilder
class SocketPost extends RouteBuilder {
"""netty:tcp://localhost:12000""" ==> {
id("hello socket")
log("hello")
to("http4:localhost:9000/")
}
}
并添加:
context.setUseMDCLogging(true)
context.addRoutes(new SocketPost())
context.start()
我可以远程登录到 localhost:12000 并输入一些数据然后断开连接,但是我的 google 技能使我无法处理数据。我只在连接时收到日志:
09:48:43 DEBUG org.apache.camel.component.netty.DefaultServerPipelineFactory Using OrderedMemoryAwareThreadPoolExecutor with core pool size: 16
否则一切静默。我希望通过 telnet 输入的数据像教程中一样发布到 localhost:9000。
netty组件默认不是基于文本的,而是使用java对象序列化。那是因为旧的 tcp 组件 camel-mina 的另一个有默认行为,我们希望 netty 是相似的。
因此您需要通过设置选项 textline=true
将端点配置为基于文本的端点。您可以在以下位置找到有关此选项的更多详细信息:http://camel.apache.org/netty