2009-10-03 49 views
4

我想了解推送服务是如何工作的。我相信推送通知是服务器向客户端推送新项目的地方,但我不知道实际中这是如何工作的。如何推送电子邮件/聊天工作?它可以轻松实现小型网站吗?

例如,如果手机没有手动检查服务器是否有新消息,它会如何知道它有新的电子邮件?

此外,如何实现一个小型网站的聊天程序或通知系统?有没有PHP课,等等..?

回答

3

我假设你正在谈论一个HTTP客户端?它通常使用服务器推送或Comet技术完成。在页面加载客户端保持连接打开以接收服务器推送消息之后,而不是简单地关闭HTTP连接。

查看this SO entry了解如何使用JQuery实现的一些细节。

网络上有一些examples for PHP,但如果您期望的不仅仅是少数连接,否则您可能会用完Apache服务器连接,但您可能想要查看cometd服务器。

8

例如,如果手机没有手动检查服务器是否有新消息,它是如何知道它有新电子邮件的?

PUSH实现方式因协议而异,但原理保持不变。客户端和服务器之间的连接保持开放,服务器通知客户端新事件。这利用了较少的带宽,并且通常导致比客户端周期性询问服务器是否有任何新事件在等待的更快的交互。

作为示范,这是多么PUSH IMAP(被称为IDLE)邮寄作品:

  1. 客户端登录到电子邮件服务器正常。
  2. 在登录过程中,服务器通知它有能力IDLE
  3. 客户端正常执行新邮件的检查和下载。
  4. 而不是定期轮询新消息客户端发出IDLE命令。
  5. 服务器和客户端之间的会话保持安静。
  6. 当新邮件到达并且服务器通知邮件EXISTS
  7. 客户端然后可以退出IDLE模式与DONE并下载这些消息。从第4步
+0

感谢

  • 重复,不使用推(像例子中,你上面的描述),把更多的负载在服务器上不仅仅是轮询每隔1秒? – chris 2009-10-03 17:57:18

  • +2

    Au对应。它应该导致服务器负载的减少,并发连接和线程的使用稍高一些。与持续登录和轮询周期相比。 – 2009-10-04 08:41:22

    相关问题