我已經開始使用Netty並且有一個問題。如示例中所示,我引導Netty。Netty channelRead
def connect {
try {
bootstrap.group(group)
.channel(classOf[NioSocketChannel])
.remoteAddress(new InetSocketAddress(host, port))
.handler(new ChannelInitializer[SocketChannel] {
override def initChannel(ch: SocketChannel) {
ch.pipeline.addLast(new StringDecoder(CharsetUtil.UTF_8))
.addLast(new NettyConnectionChannelInbound)
}
})
val future: ChannelFuture = bootstrap.connect.sync
future.channel.closeFuture.sync
} finally {
group.shutdownGracefully
}
}
我與channelRead方法的另一個類是
class NettyConnectionChannelInbound extends ChannelInboundHandlerAdapter {
override def channelRead(ctx: ChannelHandlerContext, msg: Any) {
println(msg)
}
}
當我運行我的應用程序
val nc = new NettyConnection
nc.connect
println("After connection")
它沒有以往任何時候都似乎得到到的println連接後呼叫。這是預期還是我做錯了什麼?如果我在收到某些東西后沒有關閉套接字,它是否僅僅等待接收到的消息進入?
謝謝。現在你明確指出了這一點。我剛剛在Netty網站上看到了這個例子,並沒有想到在渠道關閉之前我阻止了這個事實。 – ryknow