【问题标题】:How can I test a comet ajax site on a single host and work around browser simultaneous connection limit?如何在单个主机上测试 Comet ajax 站点并解决浏览器同时连接限制?
【发布时间】:2009-12-11 10:08:33
【问题描述】:

我在 apache、php、jquery 中使用彗星长轮询技术。

我正在运行一个基本的彗星更新,它运行良好。我现在正在尝试构建一个更复杂的彗星脚本,并且我想要一种更好的调试方式。

我的 comet 脚本使用 $.ajax() 并有很长的超时时间,并且服务器端只是休眠,直到它运行到超时或有一个事件要发送给客户端。 Comet 请求与主 ajax 请求转到不同的子域。

对于普通页面,我在 linux 笔记本电脑上进行编辑和测试。我有 apache、mysql 和 php,有一个测试数据库和站点的镜像。我无需上传步骤即可编辑、保存和查看更改。对于彗星的东西,我不得不上传到服务器进行测试。这需要我设置一些假服务器,但大多数情况下它需要我为每个测试上传更改的文件。我有一个主要是自动上传脚本,但它仍然太慢了。

本地测试的问题是长时间超时。当彗星请求仍然打开时,浏览器不会打开到同一服务器的另一个连接。我在本地没有子域,所以我将所有请求都发送到同一台服务器,所以它们基本上会互相阻塞。

我已经尝试了很多方法来完成这项工作,但都没有真正做到。我首先尝试更改浏览器设置的同时连接数。这在 linux 上的 firefox 中不起作用,我没有找到任何关于在其他浏览器上更改此限制的信息。

我尝试设置我的主机文件给我两个映射到我的 IP 地址的名称。然后我尝试在 apache 中配置 VirtualHost conf 指令,但这没有用。我认为是因为 apache 正在寻找一个实际的 dns 服务器来告诉它主机名,而不仅仅是我的 /etc/hosts 文件。也许我可以运行一个本地 dns 服务器来欺骗 apache,让其认为我的盒子有两个名字,但这似乎是解决这个问题的一个很长的路要走。

那么,有没有人知道如何在一个 IP 地址/主机上进行这项工作?

我是彗星的新手,所以也许我对某些事情有错误的想法。也许这甚至是不可能的。不管怎样,是时候问问这是否已经解决了。

【问题讨论】:

    标签: apache browser comet limit


    【解决方案1】:

    确实应该可以使用 /etc/hosts 来欺骗 Apache。它确实可以在 Ubuntu Hardy 和 Apache 2.2 上运行。

    尝试为您的本地地址提供不同的主机名。只需在 /etc/hosts 中添加这样的一行:

    127.0.0.1    a.example.com b.example.com c.example.com d.example.com
    

    (注意:IP后使用制表符)

    通过 ping 验证这一点

    ping a.example.com
    

    在您的 apache 配置中,您可以将通配符别名与命名的虚拟主机一起使用:

    <VirtualHost *:80>
      ServerName example.com
      ServerAlias *.example.com
      ## snip ##
    <VirtualHost>
    

    您可能想要使用您可以控制的东西,而不是使用 example.com。我使用我们公司域的本地子域(即 something.local.molindo.at)。

    现在您可以使用不同的子域进行测试,每个子域都有自己的并发连接限制。

    您可能需要重新启动浏览器才能使其正常工作。

    【讨论】:

    • 我仍然不确定我是否理解 NameVirtualHost 和 VirtualHost 指令,但我已经让它工作了。谢谢!
    【解决方案2】:

    我做了类似的事情,并且我的主机达到了我的最大查询限制,这实际上不应该发生。但是我已经读过,如果我的 php 代码处于无限循环中。即主机检测到它的睡眠模式并使 db 连接用户使用比允许更多的查询。假设很多,但我已经找到了解决方案与相同的猜测。

    【讨论】:

    • 我不确定我是否理解这一点,但这不是托管问题。这是浏览器的限制。
    猜你喜欢
    • 2017-02-14
    • 2023-03-30
    • 2013-10-22
    • 1970-01-01
    • 2016-11-19
    • 1970-01-01
    • 2020-10-10
    • 2014-05-16
    • 2012-09-25
    相关资源
    最近更新 更多