我正在尝试在不稳定的客户端连接下测试我的WebSocket服务器。我希望能够随时强制关闭客户端的单个WebSocket连接,而无需发送关闭帧或TCP FIN握手。浏览器本身不能做到这一点(对吗?),因为当选项卡关闭时,它会优雅地关闭每个WebSocket连接。同一主机的其他WebSocket连接(在其他浏览器窗口中的我)不应受到影响。
我的系统是Ubuntu Linux 12.04;我的浏览器是Chrome(但我可以切换到任何支持WebSocket的浏览器进行测试)。
服务器使用Ruby和em-websocket。
我考虑过的选项有:
- 使用“killall -9 $pid_of_tab”,但这有点粗鲁,并且内核显然仍会关闭TCP连接。 - 使用iptables防火墙规则,但这需要root权限,并且很难只关闭一个连接(从localhost),同时保持其他连接的开启状态。 - 从另一台计算机连接,然后拔掉网络电缆或禁用wifi。
最后两种方法可以运行,但感觉肯定有更简单的方法。您有什么想法吗?
我的系统是Ubuntu Linux 12.04;我的浏览器是Chrome(但我可以切换到任何支持WebSocket的浏览器进行测试)。
服务器使用Ruby和em-websocket。
我考虑过的选项有:
- 使用“killall -9 $pid_of_tab”,但这有点粗鲁,并且内核显然仍会关闭TCP连接。 - 使用iptables防火墙规则,但这需要root权限,并且很难只关闭一个连接(从localhost),同时保持其他连接的开启状态。 - 从另一台计算机连接,然后拔掉网络电缆或禁用wifi。
最后两种方法可以运行,但感觉肯定有更简单的方法。您有什么想法吗?