HTTP 有 1.1 和 1.0 之说,也就是所谓的 keep-alive ,把多个 HTTP 请求合并为一个,但是 Websocket 其实是一个新协议,跟 HTTP 协议基本没有关系,只是为了兼容现有浏览器,所以在握手阶段使用了 HTTP 。
AJAX轮询
让浏览器每隔几秒像服务器发起一次AJAX请求数据,查询是否有新数据。这种方式要求服务器有非常高的处理速度
long poll
这个处理机制和AJAX非常类似,这个采取的是一种阻塞的方式,就是客户端发起ajax请求,等待request回复 ,如果一直没有得到回复 则会一直等待,如果收到回复了,就再次向服务器发起AJAX请求,这样循环。但是这张方式对高并发要求很高 所以不是一种很好的方式。
以上的两种方式都是不断发起HTTP请求,等待服务器处理,都是一种被动的方式,(客户端单向服务器发起请求)。
所以出现的HTTP1.0------HTTP1.1的升级 加入了WebSocket协议,实现了服务器也可以像客户端发起请求。可以双向请求数据
使用WebSocket构造函数来创建一个WebSocket连接,构造函数会返回一个WebSocket实例,可以用来监听事件
var ws = new WebSocket("ws://echo.websocket.org", "myProtocol");
WebSocket事件
WebSocket API是纯事件驱动,通过监听事件可以处理到来的数据和改变的链接状态
一旦服务端响应WebSocket连接请求,就会触发open事件。响应的回调函数称为onopen
WebSocket 方法
WebSocket 对象有两个方法:send()和close()
var ws = new WebSocket("ws://echo.websocket.org")
ws.onopen = function(e) {
ws.send("Initial data");
}
WebSocket对象有三个属性,readyState,bufferedamount和Protocol。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。