使用netty实现websocket,在网页关闭的时候断开连接,采用的是H5版本的,微信浏览器,在ios系统下离开页面的时候会出现原链接状态变为close_wait状态而不会断开,在安卓版本下不会出现这种情况
大概的情况是这样的
代码是这样的,hander这边基本没有其他业务的东西,业务方面都放线程池执行了,
抓包情况分析
15570->80端口的,80端口是服务器的端口,这里的是客户端向服务端发送fin,服务端立刻返回ack,但是属于服务端的fin却一直不会发送过来,,这个抓包是我在服务器上用tcpdump抓的网卡的数据流量情况,在本地直接用wireshark抓包也是差不多的情况。
而根据服务器的挂载情况显示挂载nginx上面,我直接关闭服务也不会断开连接,只有重新加载nginx配置或者nginx进行重启才会把close_wait状态修改为last_ack状态,。
还有一个情况就是,这个服务器暂时只有我一个人在使用没有对外开放,所以应该也不存在什么阻塞的情况
你的服务器在收到客户端断开的时候,有没有主动的调用close代码,把这个连接关闭
补充一个图,问题那边没有上传到