Netty与阻止IO客户端,浏览器

时间:2011-12-11 21:39:09

标签: browser io blocking netty

我有一个使用传统BIO(阻止IO)的遗留应用程序(HTTP和原始TCP),我想开始用Netty替换它。

Netty如何与传统的BIO客户合作?如果我先用Netty替换服务器组件并保留BIO客户端,是否有任何问题?

此外,Netty构建的服务器可以替换用于服务器浏览器客户端的典型HTTP Web服务器吗?有问题吗?

由于

1 个答案:

答案 0 :(得分:3)

我的理解是netty支持阻塞(org.jboss.netty.channel.socket.oio)和非阻塞(org.jboss.netty.channel.socket.nio)操作。请参阅http://docs.jboss.org/netty/3.2/guide/html/architecture.html第2.2节。

很容易在阻止和非阻塞之间切换,因此您可以尝试使用NIO,如果不能与您的客户端一起使用,则可以切换到OIO。您可以在设置为ChannelFactory

的情况下设置要支持的IO类型
// NIO - non blocking
ChannelFactory factory =
        new NioSeverSocketChannelFactory(
                Executors.newCachedThreadPool(),
                Executors.newCachedThreadPool());

//OIO - blocking
ChannelFactory factory =
        new OioServerSocketChannelFactory(
                Executors.newCachedThreadPool(),
                Executors.newCachedThreadPool());

现有一些基于netty的HTTP Web服务器/框架已经实现。例如,webbitxitrumplay framework。我相信还有更多。这些只是我能想到的那些。

如果您希望实现自己的,org.jboss.netty.example.http包中的示例是一个很好的起点。