Server-Sent Events &&Web Sockets

来源:互联网 发布:阿里云 搭建云流量 编辑:程序博客网 时间:2024/05/29 05:04
  1. Server-Sent Events(服务器发送事件)
    SSE主要是围绕只读Comet交互推出的API,用于创建向服务器的单向连接,服务器可以通过这个连接发送任意数量的数据,但是服务器响应的mine-type必须是text/event-stream。SSE支持短轮询,长轮询和HTTP流,且能在断开连接时自动确定何时连接。
    API:
    要先创建个事件流:var source = new EventSource("myevents.php")实例后存在一个readyState属性,值为0表示正连接到服务器,1为打开了连接,2为关闭了连接。后有三个事件:open,message,error.open表示在建立连接时触发,message表示从服务器接收到新事件时触发,error,表示无法建立连接。
  2. Web Sockets
    Web Sockets 与comet不一样的是,这里建立的是双工通信,在一个持久连接的基础上提供全双工,双向通信,且这个利用的协议会由HTTP协议上升为Web Socket协议。且协议且专门为快速传输小数据设计。
    API:
    首先要实例化一个Web Socket对象:var socket = new Websocket("ws://www.example.com/server.php")实例化之后,浏览器马上尝试连接,同时有一个readyState属性,0表示正在建立连接,1位已经建立连接,2为正在关闭连接,3位已经关闭连接。当连接建立之后,就可以发送和接收数据。send表示发送数据,onmessage表示读取服务器发送的数据。

    3.SSE和Socket区别
    首先看是否要选择双工通信,若只需要从服务器读取数据,则直接使用SSE,若需要双工通信,则使用websocket通信。其实websocket需要使用单独的协议而不是HTTP协议。

原创粉丝点击