Server-sent Events和 websocket
2014-03-20 17:00
351 查看
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服务器处理事件,并开放一个端口
相关文章推荐
- WebWorker和Server-Sent Events和HTML5 WebSocket
- Server-Sent Events和WebSocket服务器向浏览器推送信息
- Server-Sent Events实现服务端单向推送消息事件
- HTML5支持服务器发送事件(Server-Sent Events)-单向消息传递数据推送(C#示例)
- Multiple Events in Server-Sent Events
- HTML5 服务器发送事件(Server-Sent Events)
- (转)HTML5服务器推送事件Server-sent events
- WebSocket(5)-- WebSocket Server
- python 实现新版websocket协议 server
- Socket,ServerSocket,WebSocket
- HTML5 WebSocket(Client) + JavaWeb(Server)实现简单的聊天室功能
- AndroidAsync :异步Socket,http(client+server),websocket和socket.io的Android类库
- 菜鸟从零开始初始WebSocket -Server篇(二)
- 关于轮询,长轮询,Server Send Event,websocket的理解
- WebSocket 基于 Tomcat7.0.54 的server部署 与client访问
- websocket的WebSocketServer无法注入service
- HTML5 服务器推送事件(Server-sent Events)实战开发
- 基于WebSocet简单聊天室(NodeJS + node-websocket-server)
- StandardServer.await: Invalid command 'GET /setting/webSocket HTTP/1.1' rece
- python websocket server