Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tcp 什么';强制断开WebSocket连接的最简单方法是什么?_Tcp_Websocket - Fatal编程技术网

Tcp 什么';强制断开WebSocket连接的最简单方法是什么?

Tcp 什么';强制断开WebSocket连接的最简单方法是什么?,tcp,websocket,Tcp,Websocket,面对不可靠的客户端连接,我正在尝试测试我的WebSocket服务器 我希望能够在我选择的任何时刻,在客户端强制断开单个WebSocket连接,而不发送结束帧或TCP FIN握手。浏览器本身无法做到这一点(对吗?),因为它会在关闭选项卡时优雅地关闭每个WebSocket。来自同一主机(其他浏览器窗口中的me)的其他WebSocket连接不应受到影响 我的系统是Ubuntu Linux 12.04;我的浏览器是Chrome(但我可以切换到任何与WebSocket兼容的浏览器来测试这一点) 服务器正在

面对不可靠的客户端连接,我正在尝试测试我的WebSocket服务器

我希望能够在我选择的任何时刻,在客户端强制断开单个WebSocket连接,而不发送结束帧或TCP FIN握手。浏览器本身无法做到这一点(对吗?),因为它会在关闭选项卡时优雅地关闭每个WebSocket。来自同一主机(其他浏览器窗口中的me)的其他WebSocket连接不应受到影响

我的系统是Ubuntu Linux 12.04;我的浏览器是Chrome(但我可以切换到任何与WebSocket兼容的浏览器来测试这一点)

服务器正在使用Ruby和em websocket

我考虑过的选择:

  • killall-9$pid\u of_tab
    但这有点粗鲁,内核显然仍然关闭TCP连接
  • iptables
    防火墙规则,但这需要根目录,而且很难在保持其他连接的同时仅断开一个连接(来自本地主机)
  • 从另一台机器连接,然后拔下网络电缆或禁用wifi

最后两种方法会奏效,但感觉一定有更简单的方法。有什么想法吗?

这是
iptables
版本(假设套接字服务于本地主机,端口3000):

要添加删除所有流量的规则,请执行以下操作:

$ sudo iptables -A INPUT -i lo -p tcp --dport 3000 -j DROP
要再次删除该规则,请执行以下操作:

$ sudo iptables -D INPUT -i lo -p tcp --dport 3000 -j DROP

我想你可以很容易地用一个或

有趣的想法来做这件事,我没有考虑过。我最终使用了iptables黑客,但如果我需要再次使用,我会尝试WebScarab。