2011-04-12 29 views
3

美好的一天。PHP,javascript,ajax - 2位用户之间的沟通

我需要这样做:

当用户X按下一个按钮,用户Y看到的照片。在此之前,用户Y什么都看不到

我这样做是这样的:我在一台mysql服务器上创建了一个数据库,并创建了一个包含照片和标志的表格。当用户X按下按钮时,我发送一个ajax请求并将标志更改为相应的照片。用户Y也每1秒发送一次Ajax请求,以查看是否有任何改变。

听起来不错,看起来不错,工作...它的确如此,但确实如此。当100000个用户每1秒发送1个Ajax请求时,服务器崩溃。先用mysql服务器再用apache。

所以......我的问题是有没有这么多的Ajax请求呢?就像发送页面某个“事物”,告诉浏览器保持相同的套接字并稍后发送图像?像流一样的东西,而不是图像是HTML页面/图像/无论什么。

我知道java applet将是一个解决方案,但我需要一个php(用于服务器端)+ js(用于客户端)解决方案。

是的,我知道我可能会得到一个“你不能”的答案,但它值得一试。

+0

是否必须每隔1秒?大概3秒钟?这会立即将负载减少到1/3 - 如果它会以100,000个用户的速度崩溃,那么可以使用(理论上)30万个用户。 – 2011-04-12 08:29:28

+0

其实我需要在0.5 ... 1的请求是妥协。此外,我还增加了一次清理时间...每隔120秒10秒,用户不发送任何东西...仍然不好。 – zozo 2011-04-12 08:30:30

+0

你有可能使用HTTPS吗?我问这是因为你随后在每台客户端计算机上都有一个安全通道,因此能够将异步响应发送回客户端。 – 2011-04-12 08:33:27

回答

2

WebSockets怎么样?

编辑。 HTTP keep-alive可能会有所帮助。

+0

呃...这样的事情。但在我读到的内容中,他们只在新的浏览器中实现......而且我也没有看到IE ......我怀疑我的老板会同意这一点。 (即使我会) – zozo 2011-04-12 08:42:04