1、定义
Websocket 是独立的,一种建立在单个tcp协议上的一种全双工通信协议。通过http/1.1协议的101状态码进行握手。
为例创建Websocket连接,需要通过浏览器发出请求,之后服务器进行回应,这个过程通常称为握手。
api是w3c的标准。
2、原理
为了实现推送技术,所用的技术都是轮询。由浏览器对服务器发送http请求,然后由服务器返回最新数据给浏览器。缺点:浪费宽带资源
新技术comet,普遍采用长连接。缺点:浪费服务器资源。
这种情况下,诞生了websocket,能更好的节省服务器资源和宽带,并且能够实时的进行通讯。
3、特性
较少的控制开销
更强的实时性
保持连接状态
更好的二进制支持
定义了二级制帧,相对http,可以更轻松的处理二进制内容
可以支持扩展
更好的研所效果
4、简单示例:
websocket它可以在用户的浏览器和服务器之间打开交互通信会话,使用此api,可向服务器发送信息并接受事件驱动的响应,而无需通过轮询服务器的方式以获得响应。Websocket对象提供了用于创建和管理websocket连接,已经可以通过该连接发送和接受数据的api。
// 创建WebSocket连接.
const socket = new WebSocket('ws://localhost:8080');
// 连接成功触发
socket.addEventListener('open', function (event) {
socket.send('Hello Server!');
});
// 监听消息
socket.addEventListener('message', function (event) {
console.log('Message from server ', event.data);
});