2012-07-14 446 views
3

我试图测试我的WebSocket服务器面对不可靠的客户端连接。强制删除WebSocket连接最简单的方法是什么?

我希望能够在任何时候选择在客户端强制删除单个WebSocket连接,而不发送关闭帧或TCP FIN握手。浏览器本身无法执行此操作(对吗?),因为它在关闭标签页时正常关闭每个WebSocket。来自同一主机的其他WebSocket连接(我在其他浏览器窗口中)不应受到影响。

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

服务器正在使用Ruby和em-websocket。

选项,我认为:

  • killall -9 $pid_of_tab但是这是一个有点粗鲁,内核显然还是关闭TCP连接
  • iptables防火墙规则,但需要root,这是很难只是一个下降连接(从本地主机),同时保持其他活着
  • 从另一台机器连接,然后拔出网络电缆或禁用所述WiFi

最后两个会起作用,但感觉好像有一个更简单的方法。有任何想法吗?

回答

0

这里的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 
1

我怀疑你可以很容易地用FiddlerWebScarab

+0

有趣的想法,我没有考虑到这一点。我最终使用了iptables hack,但如果我需要再次执行此操作,我会给WebScarab一个尝试。 – Thomas 2012-07-16 17:14:46

相关问题