关于ajax消息通知的建议


Advice for ajax message notifications?

我来这里是想问你我认为什么是正确的编码方式。

我有一个接收私人消息的网站,我希望在收到消息的人的那一刻显示一个标志。我是否应该每3秒检查一次新消息,并在有新消息时显示标志,或者有更好的方法?

如果我在ajax中这样做,我认为每3-5秒检查一次新消息,一旦有一个标志,停止检查更多。

我唯一担心的是,如果它每隔3-5秒检查一次,会不会给打字的人造成任何延迟或故障?让我们假设他们正在某处输入一个段落,我不希望他们的书写在检查3-5秒间隔时出现故障。

我的一个程序员朋友提到有一个Ping(?)之类的方法。这个人总是连接到服务器,当有变化时它会通知用户。我完全不知道这是怎么回事。

有人知道facebook是怎么做的吗?哈哈。

谢谢!

如果AJAX做得很好,那么在输入时应该不会出现延迟/故障。像3-5s这样的速度足够快,但不会减慢服务器/浏览器的速度。

他是说"推"吗?在推送中,消息被实时推送到客户端,客户端不会询问是否有新消息。这很可能是Facebook使用的方法。

我的一个程序员朋友提到有一个Ping(?) or的方法像这样的

老实说,我真的不喜欢定期刷新(每隔一段时间轮询),因为它有缩放问题(当使用定期刷新时,我得到了主机提供商的通知)。您应该使用更有效的传输方式,例如:

  • WebSocket
  • Adobe®Flash®Socket
  • AJAX长轮询
  • AJAX多部分流
  • 永远Iframe
  • JSONP轮询(跨域)

可以这样使用:

  • 托管解决方案推动者与API和慷慨的免费计划。这为您提供了每天最多20个并发和100,000条消息,但没有SSL,因此不要通过网络传输敏感信息。他们还提供了第三方PHP客户端,可以在github上实现REST API。
  • 插座。io(我很喜欢这个)
  • 龙卷风
  • 网状的
有人知道facebook是怎么做的吗?哈哈。
对于聊天,他们使用Erlang。他们也有开源的tornado(见上面的链接),这是他们过去从friendfeed获得的。Facebook是一个PHP商店,但他们决定不使用PHP,因为PHP还不能有效地做到这一点。无论如何,他们使用的是上述一种高效的运输方式。