- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 ChannelInboundHandlerAdapter 类并 writeAndFlush 来自 channelRead() 的每条消息;
public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
ByteBuf msgBuffer = (ByteBuf)msg;
BinaryWebSocketFrame frame= new BinaryWebSocketFrame(msgBuffer);
ctx.writeAndFlush(frame);
}
在这种情况下:Netty 是否释放“frame”和“msg”。我知道它们是引用计数对象,因此当我尝试像下面这样手动释放它们时:
public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
ByteBuf buf = (ByteBuf)msg;
BinaryWebSocketFrame frame= new BinaryWebSocketFrame(buf);
ctx.writeAndFlush(frame);
buf.release();
frame.release();
}
但在这种情况下,我收到 refCounted 对象释放错误,如下所示:
io.netty.util.IllegalReferenceCountException: refCnt: 0, decrement: 1
一开始,我依赖netty来释放相关实例,但运行时偶尔会出现内存泄漏错误。
在这种情况下如何减少内存使用,因为当您无法正确释放它们时,在每个channelRead事件中创建新实例并不是一个好主意。
最佳答案
是的,如果你调用writeAndFlush(...)
,你基本上就转移了缓冲区的所有权。如果缓冲区已写入或写入失败,Netty 本身会释放该缓冲区。
关于java - ChannelInboundHandlerAdapter writeAndFlush(msg)方法在刷新后是否释放msg?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43654924/
看下面的代码: public final class SecureChatClient { static final String HOST = System.getProperty("host",
我的 tcp 客户端请求 netty 服务器,netty 服务器使用 writeAndFlush() 返回 393718 字节。但客户端只收到 262142 字节。我使用“tcpdump -A”来抓取
我正在使用 Netty 4.1.16 创建服务器。我建立了一条管道: socketChannel.pipeline() //Line Based Frame Decoder will
我正在使用 ChannelInboundHandlerAdapter 类并 writeAndFlush 来自 channelRead() 的每条消息; public void channelRead(
我们有一个在 Ubuntu v10 上运行的基于 Netty (4.0.15) 的 Websocket 服务器,在弹性测试期间我们这样做: 杀死 -9 服务器 从客户端发送一些数据 预计客户端上的wr
引用包io.netty.example.proxy中的netty示例,http和https都可以正常工作,即使https消息是乱码。 我想使用netty来执行从代理服务器获取的https消息。 pub
我是 netty 新手,并试图了解 writeAndFlush 的 channel future 如何工作。考虑在 netty 客户端上运行以下代码: final ChannelFuture writ
我正在使用 Netty4 框架开发一个 IM 服务器。同时,我使用名为channel.writeAndFlush() 的方法向客户端发送消息。但是,当手机端的客户端socket异常关闭时,比如关闭网络
我正在使用 java 代码将 JSON 数据发送到 flash,因为我使用的是 netty 服务器 4.0.23。通过这种方式,我经常使用两种不同的数据发送给同一个客户端。我使用了channel.wr
我是一名优秀的程序员,十分优秀!