2009-10-29 85 views
0

我想提供一个PHP挂起请求,它会一直保持打开状态,直到新事件存在,此时它会立即将JSON编码数据返回给JavaScript客户端。挂起请求内存问题

连接 - >等待事件(检查,睡眠,检查,睡眠等) - >检测到事件 - >发回事件 - >关闭请求。

CPU负载不是这个配置的问题,但需要扩展的RAM数量大约为5-10MB,因为每个连接需要1个PHP处理器。有没有办法让一个PHP进程被用来同时服务多个连接?还有可能在不使用某种类型的监听守护程序服务的情况下执行此操作?

+0

听起来像一个基本的网络服务? – Galen 2009-10-29 02:05:46

+1

为什么这个过程必须四处走动?它当然可以完成,但对服务器配置和资源的代价是很高的。另外,它不是安全的。如果“您的”PHP线程中止,挂起或服务器重新启动,该怎么办?为什么不使用会话等经典持久性模型,并对每个事件提出新的请求? – 2009-10-29 02:29:12

+0

这是一款交互式游戏,需要接近实时响应,并且每隔0.5秒进行一次轮询将使用比悬挂请求更多的资源。 – 2009-10-29 02:47:38

回答

2

它是一个互动游戏,即 需要接近实时的响应, 和轮询每1.5-2秒 要使用更多的资源比 挂请求

在这种情况下PHP绝对不是解决您的问题。考虑类似C++,Delphi或.NET来编写web服务。你正尝试用叉子吃汤...

+0

谢谢你恢复我对世界卫生水平的信心。 – 2009-10-29 09:58:45

+0

这是我的攻击计划,但我希望能够找到一种适用于云托管解决方案而不是自定义设置的解决方案。 – 2009-10-29 14:42:14