zoukankan      html  css  js  c++  java
  • html5 的服务器推送 Server-sent Events和 websocket这两个是不是同一个东西,是两个不同的?

    Server-Sent Events

    运行原理

    浏览器通过HTTP向服务器发送请求,服务器端拿出数据库中的最新的信息,立即返回给客户端,客户端等待三秒后再次发出下一个请求。

    实现方式
    同样,浏览器中HTML两个input,JavaScript模块打开EventSource,把接受者的id传给服务端。
    客户端收到相应后,onMessage事件的处理器将被调用。浏览器将每3秒发送一个请求,除非将连接关闭(Close方法)。

    WebSockets

    运行原理

    客户端通知WebSockets服务器一个事件,告诉他接收者id,服务器将立即通知消息,当任何新的未读消息来的时候,服务器都将立即返回数据给客户端。

    客户端打开一个WebSockets连接而且在/notification/updates上订阅一个事件处理。在HTML中添加一个发送向/notification/presents发送接收者id的button。这将在所有的打开连接中引起广播消息。所以每一个活跃的客户端都收到通知,客户端会检查消息中的id是否是当前登录的用户的id,如果是就更新通知数量。

    总结

    浏览器兼容性

    Server-Sent Events支持Chrome9+、Firefox6+、Opera11+、Safari5+
    Chrome14、Firefox7支持最新的hybi-10协议,Firefox6支持hybi-07.

    服务器负载

    Server-Sent Events工作的方式有很多,除非Server-Sent Events不必在每一次响应发出后都关闭连接。
    WebSockets,服务器只需要一个进程处理所有的请求,没有循环,不必为每个客户端都分配cpu和内存。

    客户端负载

    Server-Sent Events采用浏览器的内置的实现方式,只花费很少的一部分资源。
    WebSockets跟Server-Sent Events一样,采用浏览器的内置的实现方式,只花费很少的一部分资源。

    时间线
    Server-Sent Events默认延时3秒,但是可以调整。
    WebSockets真正的实时

    实现方式复杂度

    Server-Sent Events甚至比Long-polling更简单
    需要一个WebSockets服务器处理事件,并开放一个端口
  • 相关阅读:
    音乐播放器-任务
    android 四大组件Broadcast Receiver
    Android面试题
    android Notification 的使用
    【转】dip,px,pt,sp 的区别
    SQL Server快捷方式丢了怎么启动
    《ASP.NET1200例》C#在网页上编写动态时钟
    Win7旗舰版中的IIS配置asp.net的运行环境
    《转》Win7 IIS7.5 安装
    《ASP.NET 1200例》ref关键字与out关键字
  • 原文地址:https://www.cnblogs.com/w3cdream/p/4997834.html
Copyright © 2011-2022 走看看