提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
webSocket是一项可以让服务器将数据主动推送给客户端的技术。前几天写了一个聊天功能,聊天数据需要实时更新。第一次接触到这样的需求,就用了WebSocket现实了功能
一、区分HTTP请求和HTML5 定义的 WebSocket 请求有什么不同?
首先HTTP请求是被动的只能客户端与服务端通讯只能由客户端发起造成极大的资源浪费,WebSocket请求是只需一次握手就建立双向连接,客户端服务端都可以发起联系对方避免了重复连接降低了服务端的压力。并且想什么时候发送消息就什么时候发送消息不用再次发起请求。
二、为什么不能使用AJAX轮询的方式,实现聊天功能
现在,很多网站为了实现推送技术,所用的技术都是 Ajax 轮询。轮询是在特定的的时间间隔(如每1秒),由浏览器对服务器发出HTTP请求,然后由服务器返回最新的数据给客户端的浏览器。这种传统的模式带来很明显的缺点,即浏览器需要不断的向服务器发出请求,然而HTTP请求可能包含较长的头部,其中真正有效的数据可能只是很小的一部分,显然这样会浪费很多的带宽等资源。并且使用轮询的方式服务端无法联系客户端,只能客户端联系服务端,不能有效的实时通讯。
创建WebSocket连接
var Socket = new WebSocket(url, [protocol] );
open | Socket.onopen | 连接建立时触发 | message | Socket.onmessage | 客户端接收服务端数据时触发 | error | Socket.onerror | 通信发生错误时触发 | close | Socket.onclose | 连接关闭时触发 |
WebSocket 方法
以下是 WebSocket 对象的相关方法。假定我们使用了以上代码创建了 Socket 对象:
方法 | 描述 |
---|
Socket.send() | 使用连接发送数据 | Socket.close() | 关闭连接 |
总结
WebSocket的很简单,建立连接发送数据关闭连接,其他的都是回调函数,前端做的就只是需要处理好返回过来的数据渲染到页面上就行了。
|