我正在尝试在面对不可靠的客户端连接时测试我的WebSocket服务器。
我希望能够在任何时候选择在客户端强制删除单个WebSocket连接,而不发送关闭帧或TCP FIN握手。浏览器本身不能这样做(对吗?)因为它在关闭选项卡时正常关闭每个WebSocket。来自同一主机(我在其他浏览器窗口中)的其他WebSocket连接不应受到影响。
我的系统是Ubuntu Linux 12.04;我的浏览器是Chrome(但我可以切换到任何兼容WebSocket的浏览器来测试它)。
服务器正在使用Ruby和em-websocket。
我考虑的选项:
killall -9 $pid_of_tab
但是这有点粗鲁,内核显然仍然关闭TCP连接iptables
防火墙规则,但需要root,并且很难删除一个连接(来自localhost),同时保持其他人的活着最后两个可行,但感觉必须有一个更简单的方法。有什么想法吗?