传入 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