【HTML5】WebSocket和SSE
来源:互联网 发布:k姐陈洁淘宝为什么火 编辑:程序博客网 时间:2024/05/29 13:23
Comet&SSE
有两种实现 Comet 的方式:长轮询和流。
简单介绍一下短轮询和长轮询、流
短轮询:请求,立刻响应。
长轮询:等待有消息的时候相应。
-流不同于上述两种轮询,因为它在页面的整个生命周期内只
使用一个HTTP 连接
SSE(Server-Sent Events,服务器发送事件)是围绕只读Comet 交互推出的API 或者模式。
SSE API允许网页获得来自服务器的更新(HTML5),用于创建到服务器的单向连接,服务器通过这个连接可以发送任意数量的数据。服务器响应的MIME类型必须是text/event-stream,而且是浏览器中的JavaScript API 能解析格式输出。SSE 支持短轮询、长轮询和HTTP 流,而且能在断开连接时自动确定何时重新连接。
简单说,所谓SSE,就是浏览器向服务器发送一个HTTP请求,然后服务器不断单向地向浏览器推送“信息”(message)。这种信息在格式上很简单,就是“信息”加上前缀“data: ”,然后以“\n\n”结尾(既是所谓的事件流:通过一个持久的HTTP 响应发送,这个响应的MIME 类型为text/event-stream。响应的格式是纯文本)。
- 1
用处:浏览器推送消息。
W3School上的例子:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
服务器端代码:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
SSE&WebSocket
SSE与WebSocket有相似功能,都是用来建立浏览器与服务器之间的通信渠道。两者的区别在于:
- WebSocket是全双工通道,可以双向通信,功能更强;SSE是单向通道,只能服务器向浏览器端发送。
- WebSocket是一个新的协议,需要服务器端支持;SSE则是部署在 HTTP协议之上的,现有的服务器软件都支持。
- SSE是一个轻量级协议,相对简单;WebSocket是一种较重的协议,相对复杂。
- SSE默认支持断线重连,WebSocket则需要额外部署。
SSE支持自定义发送的数据类型。
SSE不支持CORS
参数url就是服务器网址,必须与当前网页的网址在同一个网域(domain),而且协议和端口都必须相同。- WebSocket支持
-
具体WebSocket不再赘述。
http://www.w3school.com.cn/html5/html_5_serversentevents.asp
http://javascript.ruanyifeng.com/htmlapi/eventsource.html
- 【HTML5】WebSocket和SSE
- 【HTML5】WebSocket和SSE
- HTML5--SSE 和 WebSocket
- html5 sse
- 【HTML5 WebSocket】WebSocket对象特性和方法
- Html5和WebSocket----使用WebSocket实现即时通信
- 【Html5 WebSocket】WebSocket事件
- html5 websocket
- html5 websocket
- HTML5 WebSocket
- HTML5 webSocket
- HTML5 WebSocket
- html5 websocket
- html5 WebSocket
- html5 websocket
- HTML5 WebSocket
- HTML5 WebSocket
- HTML5 WebSocket
- C++学习笔记-----用位运算实现加减乘除
- Poedu_Windows_异步IO(2)
- JNI 数组返回值问题记录
- 程序员实用网站集锦
- Linux操作系统下,通过系统调用和库函数分别实现对文件的拷贝
- 【HTML5】WebSocket和SSE
- Latex 数学公式
- Netty实现简单HTTP服务器
- firewall
- 线程间数据传输
- python处理json
- 请尝试接纳SELinux
- Docker run 命令实战
- 5、不一样的C++系列--函数重载