概述
什么是webSocket?
ai的回答是(总结):WebSocket 是一种网络通信协议,用于在客户端(如浏览器)和服务器之间建立双向、持久、实时的通信通道。它与传统的 HTTP 协议有显著区别,更适合需要实时交互的应用场景。
客户端是怎么连接到webSocket服务的?
客户端通过 HTTP 发送升级请求(Upgrade 头),协商切换到 WebSocket 协议。ws://(非加密)或 wss://(加密,类似 HTTPS)来标志当前是需要连接webSocket。
客户端
客户端使用 内置的 webSocket 对象去创建连接,demo:
(function(){
const socket = new WebSocket("ws://localhost:8000")
socket.onopen = function(){
console.log("连接成功")
}
socket.onmessage = function(e){
console.log(e.data)
}
socket.onclose = function(){
console.log("连接关闭")
}
socket.onerror = function(){
console.log("连接错误")
}
window.ws = socket;
})()
服务端
const socket = new WebSocketServer({ port: 8000 });
socket.on("connection", ws => {
ws.on("message", data => {
console.log("received ", data);
socket.clients.forEach(client => {
if (client !== ws && client.readyState === WebSocket.OPEN) { // 群聊
client.send(data, { binary: false });
}
});
});
ws.send("hello");
});
1111