众所周知,在浏览器中。我们大部分的业务HTTP都是单次的,如:
但是有些时候,我们必不可少的需要进行交流,如:
这种情况就属于对话轮询的范畴勒,如果使用HTTP来进行请求轮询是非常。以上两种都是我们主动发起请求,而最后一种情况,如:
这种又对方主动发起来的会话,也是比较常见的。但是,HTTP 协议无法实现服务器主动向客户端发起消息。
我们通过实例化可以创建一个webSocket的对象
const socketHttp = new WebSocket(url: string) 复制代码
// 创建socket const ws = new WebSocket('http://localhost:2349') ws.onopen = function () { // 连接成功 consta messgae = { name: 'wangfanghua', text: 'hello !!!' } // 给后台发送一个JSON文本。 ws.send(JSON.stringify(messgae)) console.log('open消息', '连接成功') } // 消息队列 ws.onmessage = function (res) { console.log('message消息', res) } // error错误 ws.onerror = function() { console.log('error消息') } // 关闭连接 ws.onclose = function () { console.log('close消息') } 复制代码
webSocket的功能大部分就是处理HTTP无法做到的消息对话处理,实时数据的获取,如:聊天信息,设备状态,实时消息......等等一系列属于消息类请求的实现。更高深的就是一些码流的推送,如流媒体,音视频等等。其实Socket看着难,但是上手无非就是,接收消息 & 发送消息 -> 获取回执 -> 处理 .... 等过程。希望大家不要去害怕它,毕竟Socket.io一些库已经非常完善了。