org.jboss.netty 突然停止服务
我正在使用 org.jboss.netty 编写游戏服务器。老实说,这是我第一次编写 TCP/IP 应用程序。
Netty 突然停止在处理程序中调用我的函数。我尝试添加以下行来启动空闲连接:
LINE 1 TO PIPELINE : pipeline.addLast("timeout", new IdleStateHandler(idleTimer, 82 , 0, 0));
LINES TO HANDLER :
public void channelIdle(ChannelHandlerContext ctx, IdleStateEvent e) throws Exception {
super.channelIdle(ctx, e);
ctx.getChannel().close();
}
我仍然面临同样的问题。
在这个游戏服务器中,我有定时任务(有单独的执行线程池),例如每 3 秒向 1800 个客户端发送消息。这会是一个问题吗?你有遇到过这样的问题吗?
我想定期向客户端推送数据可能是问题所在。因为当我们在 netty 中使用线程池时,缓慢的连接或糟糕的网络可能会导致发送队列过长,从而影响池中的可用线程数。你怎么认为 ?
I am coding a game server using org.jboss.netty. To be honest this is my first time I am coding TCP/IP application.
Netty suddenly stops calling my functions in handler. I tried adding the following lines to kick idle connections:
LINE 1 TO PIPELINE : pipeline.addLast("timeout", new IdleStateHandler(idleTimer, 82 , 0, 0));
LINES TO HANDLER :
public void channelIdle(ChannelHandlerContext ctx, IdleStateEvent e) throws Exception {
super.channelIdle(ctx, e);
ctx.getChannel().close();
}
Still I am facing the same problem.
In this game server, I have timed tasks (have seperate executerthread pool), forexample every 3 seconds it sends message to 1800 clients. Can this be a problem ? Have you ever faced this kind of problem ?
I suppose pushing data to clients periodically may be the problem. Because as we use thread pool in netty , slow connections or bad network may cause long send queues thus effecting available thread count in pool. What do you think ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您确定没有以某种方式阻止 ioworker 线程吗?我会采取一些线程转储来确定。
Are you sure you not block the ioworker thread somehow ? I would take some thread-dumps to be sure.