【发布时间】:2012-07-17 00:32:23
【问题描述】:
面对不可靠的客户端连接,我正在尝试测试我的 WebSocket 服务器。
我希望能够在我选择的任何时候在客户端强制删除单个 WebSocket 连接,而无需发送关闭帧或 TCP FIN 握手。浏览器本身不能这样做(对吗?),因为它会在关闭选项卡时优雅地关闭每个 WebSocket。来自同一主机的其他 WebSocket 连接(我在其他浏览器窗口中)不应该受到影响。
我的系统是 Ubuntu Linux 12.04;我的浏览器是 Chrome(但我可以切换到任何与 WebSocket 兼容的浏览器来测试)。
服务器正在使用 Ruby 和 em-websocket。
我考虑过的选项:
-
killall -9 $pid_of_tab但这有点粗鲁,内核显然仍然关闭 TCP 连接 -
iptables防火墙规则,但这需要 root,并且很难只删除一个连接(来自本地主机)同时保持其他连接处于活动状态 - 从另一台机器连接,然后拔下网线或禁用 wifi
最后两个可行,但感觉必须有更简单的方法。有什么想法吗?
【问题讨论】: