他们如何进行实时网站通知?

时间:2014-02-09 06:22:42

标签: frontend

因此,在某个网站上,例如,当您的声誉增加时,会发生页面溢出部分更新。他们怎么做那大声笑?脚本是否会不时检查,还是以某种方式推送通知?

2 个答案:

答案 0 :(得分:2)

大约2年前,stackexchange开始使用这里所述的网络套接字: https://meta.stackexchange.com/questions/125677/new-feature-real-time-updates-to-questions-answers-and-inbox

如果您查看stackoverflow站点源,您将看到JavaScript函数订阅了Web套接字服务器。

现在有许多不同的技术。例如,微软推出了SignalR(http://signalr.net/),它通过切换到套接字不能像长轮询一样工作的其他技术(如果有可用的变化每隔X秒询问一次),也会优雅地降级到旧浏览器。

作为一个Python人,你可能会开始寻找类似的东西:https://pypi.python.org/pypi/websockets/1.0

享受网络套接字的乐趣!

答案 1 :(得分:2)

如果我不想使用网络套接字,我会这样做:

  • 让服务器维护会话或用户的通知队列或您想要的任何上下文。
  • 有一个用于获取此类通知的网址。
  • 当客户端尝试GET该网址时,队列中有可用的通知,请立即返回。
  • 否则,请使用HTTP连接阻止,直到排队通知为止。
  • 在客户端,然后是;只需反复尝试GET通知网址。通常情况下,连接将阻止数据读取,但我不认为这应该是一个问题。

我认为这应该比服务器端更容易在Web套接字上实现,因为HTTP服务器不必支持任何特殊的HTTP扩展。另一方面,根据您使用的HTTP服务器,每个这样的打开连接可能正在使用您想要谨慎使用的线程或其他系统资源。