【问题标题】:Disconnecting a browser tab (testing what happens when the user connection breaks)断开浏览器选项卡(测试用户连接中断时会发生什么)
【发布时间】:2013-01-23 13:05:18
【问题描述】:

我正在寻找一种方法来强制断开浏览器选项卡的连接(断开连接的方法)。

我要做的是测试我的网站,我从浏览器打开一个到服务器的 websocket,然后模拟断开连接,但只是在那个浏览器选项卡上(甚至只是在浏览器上),因为我需要我的连接来检查在那个精确的时刻服务器上发生了什么。

我一直在寻找一个 chrome 扩展来这样做,但我没有找到。但是任何方法都可以做到这一点。

我的客户端操作系统是 MacOSX 10.5

【问题讨论】:

    标签: macos user-interface google-chrome-extension websocket


    【解决方案1】:

    在 Chrome 中,使用 Menu | Tools | Task Manager 查看标签列表。您可以从那里终止页面加载过程中的选项卡。

    【讨论】:

    • 但是我需要保持标签打开,看看客户端会发生什么。
    【解决方案2】:

    你可以直接杀死浏览器进程。在这种情况下,浏览器将无法正常关闭连接。它看起来很像与服务器的断开网络连接。

    请参阅this question on superuser.com 了解如何在 MacOS 上终止进程。

    更现实的测试是设置虚拟机,在其中运行客户端(或服务器),然后中断虚拟网络连接。

    另一种选择是设置一个本地代理服务器(注意,很少有代理服务器已经支持 WebSockets),通过这个代理连接到服务器,然后通过杀死代理来模拟中断的连接。这样您就可以观察服务器和客户端对事件的反应。

    【讨论】:

    • 我需要保持客户端打开,以查看应用程序客户端部分的行为。虚拟机是一个解决方案,但我认为这有点过头了,因为这是我必须经常测试的东西,为此打开虚拟机会有点浪费时间和机器资源。
    • 当你想测试客户端的行为时,为什么不杀掉服务器进程呢?另一种选择是通过本地代理服务器运行客户端和服务器之间的连接,然后终止代理进程。
    • 我需要看看两者在连接中断时的表现如何,以及它们在连接重新打开时如何恢复,因此不能选择杀死 :-) 关于代理,这似乎是一个不错的选择想法,但我希望模拟尽可能逼真。我正在做的正确知道是将客户端连接到另一台机器上,然后拔下网线。它有效,但我想要更快、更高效的东西。
    • 最现实的测试是虚拟机的变体,就在你已经在做的事情之后。作为一名网络开发人员,您无论如何都应该知道如何使用虚拟机,因为这是测试您的网站是否在不同操作系统上正确呈现的最便宜的方法。
    • 好吧,事实是我知道如何使用它们,只是不能在我的开发机器(资源)上整天打开 virtualbox,而且我不能花时间为每次测试打开和关闭它。无论如何感谢您的建议。
    【解决方案3】:

    现在在 chrome 中,在 DevTools 的 Network 选项卡下有一个“离线”选项,但是如果您像我一样正在寻找 websocket 断开连接,您必须注意这一点:

    https://bugs.chromium.org/p/chromium/issues/detail?id=423246

    【讨论】:

      猜你喜欢
      • 2017-06-10
      • 1970-01-01
      • 2012-08-16
      • 2020-06-30
      • 1970-01-01
      • 1970-01-01
      • 2013-02-16
      • 2020-01-24
      • 1970-01-01
      相关资源
      最近更新 更多