netty搭建的websocket服务器发送大文件引起的问题

    用netty搭建的websocket服务器,发现在发送大文件时,引起客户端断线,经看日志,发现发送大文件时,服务器没有发送回应客户端websocket的pong包,导致客户端自动断线。但是如果发送文件时,对于每次发包间隔一定时间,如延迟1毫秒,则不断线.。

   之前对netty一知半解,用的代码基本都是网上现成的。经查资料(《Netty进阶之路-跟着案例学Netty(李林锋)》),原来netty开发服务器建议将netty的通道IO线程与业务功能分开,也就是对于业务单独用业务线程来处理,这样能释放netty的IO线程。Netty在处理发送数据时,对于业务线程的数据单独形成数据队列,不影响IO线程自身的数据发送。

   在本例中,发送文件使用的是netty的IO线程,结果导致线程被长时间占用,websocket的pong包无法发出。经把发送模块单独放在一个线程里,与IO线程分开,问题解决。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值