WebSocket 是一种网络通信协议,就类似于 HTTP 也是一种通信协议。
但是http只能有浏览器发起请求之后,服务器才能给出响应.服务器不能主动向浏览器发出响应
但是webSocket可以做到,让服务器主动给浏览器发送响应,这就是相比于http最主要的区别
实际项目中应用
最典型的就是pc端客服功能
代码解析
<script>
// 创建ws实例,建立连接 (ws://121.40.165.18:8800 有广告)
var ws = new WebSocket("wss://javascript.info/article/websocket/demo/hello");
// 连接成功事件
ws.onopen = function(evt) {
console.log("Connection open ...");
// 发送消息
ws.send("Hello WebSockets!");
};
// 接受消息事件
ws.onmessage = function(evt) {
console.log("Received Message: " + evt.data);
// 关闭连接
ws.close();
};
// 关闭连接事件
ws.onclose = function(evt) {
console.log("Connection closed.");
};
</script>
代码解析:
创建WebSocket实例:通过new WebSocket()创建一个WebSocket实例。在括号中传入服务器的URL,该URL指定了WebSocket服务器的地址和端口。
连接成功事件:当WebSocket连接成功建立时,onopen事件被触发,此时会执行指定的回调函数。在这个例子中,回调函数会向服务器发送一条消息,内容为"Hello WebSockets!",通过ws.send()方法发送。
接收消息事件:当接收到服务器发送的消息时,onmessage事件被触发,执行指定的回调函数。在这个例子中,回调函数会将接收到的消息打印到控制台。
关闭连接事件:当WebSocket连接关闭时,onclose事件被触发,执行指定的回调函数。在这个例子中,回调函数会打印出"Connection closed."。
socket.io使用
socket.io 是什么?
https://socket.io/
socket.io 是一个基于 WebSocket 的 CS(客户端-服务端)的实时通信库,使用它可以在后端提供一个即时通讯服务,它提供的也有一个 JS 库,在前端可以去链接后端 socket.io 创建的服务。