本篇文章给大家分享的是有关web消息推送的各种解决办法,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
在各种BS架构的应用程序中,往往都希望服务端能够主动地向客户端推送各种消息,以达到类似于邮件、消息、待办事项等通知。往BS架构本身存在的问题就是,服务器一直采用的是一问一答的机制。这就意味着如果客户端不主动地向服务器发送消息,服务器就无法得知如何给客户端推送消息。
web消息推送方法
随着HTML、浏览器等各项技术、标准的发展,依次生成了不同的手段与方法能够实现服务端主动推送消息,它们分别是:AJAX,Comet,ServerSent以及WebSocket。
小编将对上述提及到的各种技术手段进行直白化的解释。
web消息推送手段
AJAX
正常的一个页面在浏览器中是这样工作的:
用户向给予浏览器一个需要访问的地址
浏览器根据这个地址访问服务器,并与服务器之间创建一个TCP连接(HTTP请求)
服务器根据这个地址和一些其它数据,组建一段HTML文本,将写入TCP连接,然后关闭连接
浏览器得到了来自服务器的HTML文本,解析并呈现了浏览器上给用户浏览
此时,用户点击了网站上任何一个<a>或触发任何一个<form>提交时:
浏览器根据form的参数或者a的参数,作为访问的地址
与服务器创建TCP连接
服务器组建HTML文本,然后关闭连接
浏览器将当前显示的页面摧毁,并按照新的HTML文本呈现一个新的页面给用户
我们不难发现的是整个过程中间,一旦建立了一个连接,页面就无法再维护住了。整个过程看上去有点强买强卖,也许我只要一杯新的可乐,但你非要给我一整个套餐组合。
此时我们可以了解一下XmlHttpRequest组件,这个组件提供我们手动创建一个HTTP请求,发送我们想要的数据,服务器也可以只返回我们想要的结果,最大的好处是,当我们收到服务器的响应时,原来的页面没有被摧毁。这就好比,我喊一句"我的咖啡喝完了,我要续杯",然后服务员就拿了一杯咖啡过来,而不是会把我没吃完的套餐全部倒掉。
以上就是web消息推送的各种解决办法,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。