在php中处理实时通知的最好方法是什么?

我想实现像Facebook一样的实时通知。 根据服务器加载时间和编码效率的不同,可能会为不同的用户发送大量的通知。 哪个是最好的方法?

1. using normal AJAX? 2. with node.js and socket programming? 3. something else? 

提前致谢。

select合适的平台很大程度上取决于您当前的架构,知识和预算。

你的问题表明它是基于networking的,只有两个基本的select:

  • WebSocket:存在许多WebSocket服务器解决scheme,包括编译的可执行文件,基于PHP和Node.js。 这种方法大受欢迎,但不一定每个预算都可以访问,因为它通常需要一个完整的服务器来运行。 对于需要这么多同时连接的系统,VPS限制通常太重要了。
  • AJAX:AJAX及其变体的使用仍然是一个非常stream行的解决scheme,并且如果实施得当,可以像WebSocket一样高效,而不需要不断地维持连接。 如果延迟一秒钟,通常情况就不重要了,而且Facebook聊天通常比这慢得多。

对于非基于Web的解决scheme,任何事情都是可能的。 如果您开发一个客户端 – 服务器应用程序,您可以有类似于WebSocket的实时连接,这可以更容易维护。

Ajax请求不是实时的,但可以设置超时,在这种情况下工作。 但阿贾克斯请求繁忙的服务器,并尝试多个连接。 这很简单!

如果你使用套接字,那就更好了,但是你需要更多的时间去开发它。

阅读以下链接可以帮助您:

Ajax与Socket.io

现在我们有两个可能的解决scheme。 WebSockets和Comet。 WebSockets可能是最好的解决scheme,但他们有两个市长问题:

 Not all browsers support them. Not all proxy servers allows the communications with websokets. 

因为我喜欢用彗星(至less现在)。 它不如websockets,但非常简单的ant工作(即使在IE)。 realtimenotifications更多的细节了解更多关于参考上面的链接。