我試圖測試我的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
最後兩個會起作用,但感覺好像有一個更簡單的方法。有任何想法嗎?
有趣的想法,我沒有考慮到這一點。我最終使用了iptables hack,但如果我需要再次執行此操作,我會給WebScarab一個嘗試。 – Thomas 2012-07-16 17:14:46