我目前尝试为某种类型实现一个简单的 HTTP 服务器comet http://en.wikipedia.org/wiki/Comet_(programming)-技术(长轮询 XHR 请求)。作为JavaScript
对于跨域请求非常严格我有几个问题:
- 据我了解,任何 apache 工作人员在服务请求时都会被阻止,因此当所有工作人员都有服务请求时,将“脚本”编写为通常的网站会阻止 apache。 --> 不起作用!
- 我想到编写一个自己的简单 HTTP 服务器,仅用于服务这种长轮询请求。该服务器不应该阻塞,因此每个工作人员可以同时处理许多请求。由于我的网站还包含内容/图像等,并且我的服务器不需要服务器内容,所以我在不同的端口上启动了他,然后是 80。现在的问题是我无法在我的服务器之间进行交互。
JavaScript
由于一些跨域限制,由我的 apache 和运行在不同端口上的 comet-server 提供。 --> 不起作用!
- 然后我想出了使用的想法
mod_proxy
将我的服务器映射到新的子域。我真的不知道如何mod_proxy
有效,但我可以想象我知道与我的第一种方法有相同的效果?
创建这种经典网站和这些长轮询 XHR 请求的组合的最佳方式是什么?我需要自己在我的服务器上实施内容交付吗?
我很确定使用 mod_proxy 会在处理请求时阻止工作人员。
如果您可以使用 2 个 IP,则有一个相当简单的解决方案。
假设 IP A 是 1.1.1.1,IP B 是 2.2.2.2,假设您的域名是 example.com。
其工作原理如下:
- 将 Apache 配置为侦听端口 80,但仅侦听 IP A。
- 在端口 80 上启动其他服务器,但仅在 IP B 上。
- 将 XHR 请求配置为位于您域的子域上,但具有相同的端口。所以跨域限制并不能阻止它们。例如,您的网站是 example.com,XHR 请求会转到 xhr.example.com。
- 配置您的 DNS,以便 example.com 解析为 IP A,xhr.example.com 解析为 IP B。
-你完成了。
如果您有 2 台服务器并且每台服务器都有其 IP,则此解决方案将有效;如果您有一台服务器有 2 个 IP,则该解决方案也将有效。
如果你不能使用2个IP,我可能有另一个解决方案,我正在检查它是否适用于你的情况。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)