【发布时间】: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