gpt4 book ai didi

browser - 带有阻塞 IO 客户端、浏览器的 Netty

转载 作者:行者123 更新时间:2023-12-02 00:27:09 25 4
gpt4 key购买 nike

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

Netty 如何与传统的 BIO 客户端一起工作?如果我先用 Netty 替换服务器组件并保留 BIO 客户端,会有什么问题吗?

此外,Netty 构建的服务器是否可以替代旨在为浏览器客户端提供服务的典型 HTTP Web 服务器?有什么问题吗?

谢谢

最佳答案

我的理解是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。您将您希望支持的 IO 类型设置为 ChannelFactory

// NIO - non blocking
ChannelFactory factory =
new NioSeverSocketChannelFactory(
Executors.newCachedThreadPool(),
Executors.newCachedThreadPool());

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

已经实现了许多现有的基于 netty 的 HTTP 网络服务器/框架。例如,webbit , xitrumplay framework .我敢肯定还有更多。这些只是我能想到的。

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

关于browser - 带有阻塞 IO 客户端、浏览器的 Netty,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8467709/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com