Web或Twitter等Web通知服务模式

时间:2012-10-12 13:38:03

标签: rest web-applications web notifications design-patterns

我从未在网络客户端上做过通知服务,我只是想知道最常见的模式是什么。

就像服务器必须推送客户端一样,或者如果它是需要每分钟获取服务器信息的客户端,例如。

或者是否有其他模式。

2 个答案:

答案 0 :(得分:1)

有多种方法可以实现推送通知:

HTTP长轮询:客户端发起请求。服务器检查是否有任何新通知。无论是否有新通知,都会发送相应的响应并关闭连接。在时间X客户端发起另一个请求后(+非常容易实现 - 通知不是实时的。它们依赖于X,因为数据检索是客户端启动的。随着X减少服务器增加的开销)

HTTP Streaming:这与HTTP Long Polling非常相似,但连接未关闭。服务器发送分块响应。因此,只要服务器收到想要推送的新通知,它就可以简单地写入套接字。 (+延迟比长轮询更低,几乎实时行为/关闭连接和重新开放的开销减少 - 内存使用情况客户端继续堆积/丑陋黑客等)

WebSocket:基于TCP的协议提供真正的双向通信。服务器可以随时将数据推送到客户端。 (+ ve:真正的实时 - 一些旧的浏览器不支持它)。阅读更多关于它的信息WebSocket.org |关于WebSocket

现在基于技术堆栈,有各种解决方案: (A)Nodejs:用于实时应用程序的跨浏览器WebSocket。 (为你做重担。如果不支持websocket,优雅地倒退) (B)Django:如前所述,您可以使用信号进行通知。您也可以尝试使用django-websocket 0.3.0来支持websocket (C)Jetty / Netty和Grizzly(基于Java):所有人都有websocket支持

来自link

答案 1 :(得分:0)

这取决于您使用的Web框架。使用像这样的现代框架,服务器很容易将通知推送到客户端,并且可以自动发生多种显示更新,而无需构建通知机制来处理它们。

查看http://meteor.com列出的两个Meteor截屏视频。