SERVICE


云启未来,智造互联
企业上云升级,助力企业腾飞

推送代理服务联系到远程主机,并请求源以event source结构作出反应

发布时间:2016-12-15 13:29:57您的位置: > 微信开发,小程序开发 > 正文

3.5 Communication API 95 在上述代码中,用到了EventSource接口,该接口的相关内容见表3-6a 表3-6Bvent Source接口 EventSource接口的工作步骤如下所示。 (1)解析URL地址,如果不能正常解析,则抛出SYNTAX_ERR异常。 (2)返回一个新的EventSource对象,并在后台继续下面的步骤。 (3)如果源绝对地址与当前脚本不是同一个地址,则发生网络错误,提示连接失败,同时放 弃后续步骤。 (4)如果地址匹配成功,则向客户端发出成功状态,并开始接收数据。 ●移动端服务器端推送 由于移动端的方案越来越多,我们在这里特意对基于移动设备的服务器端事件的详细通信步 骤和管理过程进行了解析。 基于移动端设备的浏览器在发起一个连接后,将检测是否支持代理网络接管网络连接,其通 信过程如下所示。 (1)浏览器连接到一个远程HTTP服务器,请求源返回一个EventSource结构的信息。 (2)服务器发出临时消息。 (3)在两个消息之间,浏览器除了保持必要的动态连接外,将自动切换到休眠模式以节省 电力。 (4)浏览器从服务器端断开。 (5)浏览器联系上一个网络中的服务,并请求那个服务烈“推送代理”的形式代替连接。 (6)推送代理服务联系到远程主机,并请求源以Event Source结构作出反应(也许还包括 Last-Event.ID HTTP头)o (7)浏览器允许移动设备休眠。 (8)服务器发出另一个消息。 (9)推送代理服务用一个像OMA推送的技术传送事件到移动设备端,唤醒并执行此事件进 程,然后进入休眠。 .服务器端推送事件应用方案济南网站建设公司建议当开发人员在实际工程中,有那种只需要服务器向客户端推送,而不需要客户端太多反馈的 技术需要时,可以考虑采用这样的技术方案。与WebSocket相比,SSE的优势在于,可以用缓存, 96 第3章 划时代的Web API 可以用服务器代理,仅服务器到浏览器单向。这个事件对环境要求不高,在特殊情况下可以发挥 非常重要的作用,例如新闻、音频广播、事务数据流等的定时推送。 3.管道消息传送 管道消息传送(channel messaging),允许用户在一个事件上,以独立的两条管道进行通信, 这是本机一对多的通信。较之目前所有的HTTP通信方式而言,这种通信方式还是比较罕见的。 目前它还是WHATWGO的内容,尚未成为正式标准,但是技术新颖,因此本节只对代码实现进行 概要性的介绍,供读者预览和参考。 同上例一样,为了让大家有个较为直观的认识,我们给出了一部分示例代码,最完整的代码 请从本书配套网站上下载: //建立一个帝双端口的通信连接 var channel =new MessageChannel(); //其中一个是本地的端口,另一个是发送到远程的端口 otherWindow.postMessageI’hello’, ’http://example.com’, 【channel.port2】); //使用postMessage方法在1号端口发递消息 channel. portl. postMessage(’hello‘); ,/在I号甍口接收消息或者苴听消息事件 channel. portl. onmessage=handleMessage; function handleMessage (event)t //信息在event.data数据中 ) 管道消息传送非常类似于Web Worker,但又不是Web Worker,它主要是两个端口的数据交换, 非常类似于通信路由和交换节点。 若是想得再远一些,只要发起这个管道通信的机器有独立的IP,架起一个Web服务,就可 以用这个方式切入网络,使自己成为一台数据交换和服务的节点。图3-8是管道消息通信的图 形解释。 图 3-8 ①WHATWG( Web HyWtcxt Application Tecbnology working Group.网页超文本技术工作小组)是一个以推动HTML5 标准为目的而成立的组织。——编者注

梦之网科技 http://www.mzwkj.com

梦之网科技
本文网址:http://www.mzwkj.com/news/823.html

济南梦之网科技:济南网站建设,济南网站设计公司,网站建设开发公司,专业网站制作公司,拥有专业的技术团队,一流的服务团队.专业团队为您提供网站设计,网站定制服务,公众号应用开发,微信小程序开发,为用户提供成套解决方案,智能农业物联网系统

您可能感兴趣