我从来没有在web客户端上做过通知服务,我只是想知道最常见的模式是什么。
例如,如果服务器必须推送客户端,或者客户端需要每分钟获取一次服务器信息。
或者是否有其他的模式。
发布于 2013-11-20 19:22:41
实现推送通知的方式有多种:
HTTP长轮询:客户端发起请求。服务器检查是否有任何新的通知。不管它是否有新的通知,发送适当的响应并关闭连接。时间过后,X客户端发起另一个请求(+非常容易实现-通知不是实时的。它们依赖于X,因为数据检索是由客户端发起的。随着X减少服务器上的开销增加)
HTTP流:这非常类似于HTTP长轮询,但是连接并未关闭。服务器发送分块响应。因此,一旦服务器接收到想要推送的新通知,它就可以简单地写入套接字。(+比长轮询更低的延迟和几乎实时的行为/关闭连接和重新打开连接的开销减少内存使用客户端不断堆积/丑陋的黑客等)
基于WebSocket的协议提供了真正的双向通信。服务端可以随时向客户端推送数据。(+ ve:真正的实时--一些老的浏览器不支持它)。了解更多信息WebSocket.org |关于WebSocket
现在,基于技术堆栈,有各种解决方案可供选择:(A) Nodejs :实时应用程序的跨浏览器WebSocket。(为您做繁重的工作。(B) Django :如前所述,您可以使用信号进行通知。你也可以尝试django-websocket 0.3.0来支持websocket (C) Jetty / Netty和Grizzly (基于Java):它们都支持websocket
来自link
发布于 2012-11-11 03:56:53
这取决于您使用的web框架。有了像meteor这样的现代框架,服务器可以很容易地将通知推送到客户端,并且许多类型的显示更新可以自动发生,而不必构建通知机制来处理它们。
看看http://meteor.com上列出的两个流星截屏。
https://stackoverflow.com/questions/12860317
复制