Directorio de artículos de la serie
Sugerencia: a través del estudio de este capítulo, querrá saber más sobre qué es websocket.
Directorio de artículos
prefacio
提示:这里可以添加本文要记录的大概内容:
Por ejemplo: websocket es un nuevo protocolo de comunicación full-duplex en html5, que se basa en el protocolo Tcp y pertenece al protocolo de capa de aplicación.
提示:以下是本篇文章正文内容,下面案例可供参考
1. ¿Qué es Websocket?
WebSocket es un protocolo de red para comunicación full-duplex sobre una única conexión TCP. Una vez que se establece la conexión, se puede realizar una transmisión de datos bidireccional entre el cliente y el servidor, es decir, el servidor puede enviar datos de forma activa al cliente sin esperar la solicitud del cliente.
2. Cómo utilizar Websocket
Proceso de creación de front-end
Uso específico:
en la interfaz, puede usar la API WebSocket proporcionada por el navegador para crear una conexión WebSocket. En el backend, puede usar la biblioteca WebSocket proporcionada por varios lenguajes de programación y marcos para implementar el servidor WebSocket.
1、创建websocket对象
const ws = new WebSocket('ws://localhost:8080');
2、监听其事件
ws.onopen = function(event) {
console.log('WebSocket 连接成功!');
}
ws.onmessage = function(event) {
console.log('收到服务器发送的消息:', event.data);
}
ws.onclose = function(event) {
console.log('WebSocket 连接关闭!');
}
ws.onerror = function(event) {
console.log('WebSocket 连接出错!');
}
Proceso de creación de back-end
El código es el siguiente (ejemplo):
使用 Node.js 作为后端,可以使用 ws 模块来实现 WebSocket 服务端。首先需要安装 ws 模块:
Instalar código npm install ws
然后,在代码中创建 WebSocket 服务器:
const WebSocket = require('ws');
const server = new WebSocket.Server({
port: 8080 });
server.on('connection', function(ws) {
console.log('WebSocket 连接成功!');
ws.on('message', function(data) {
console.log('收到客户端发送的消息:', data);
// 向客户端发送消息
ws.send('收到消息:' + data);
});
ws.on('close', function() {
console.log('WebSocket 连接关闭!');
});
});
En el código anterior, WebSocket.Server crea un servidor WebSocket y escucha el puerto 8080.
server.on('conexión') escucha los eventos de conexión del cliente, ws.on('mensaje') escucha los eventos de envío de mensajes del cliente y ws. send envía mensajes a los clientes El cliente envía un mensaje y ws.on('close') escucha el evento de cierre de conexión del cliente.
Escenarios de aplicaciones de Websocket:
1、即时聊天应用:WebSocket 可以实现客户端和服务器之间的实时双向通信,适用于聊天室、在线客服等即时通讯场景。
2、实时数据展示:WebSocket 可以实时地将数据从服务器推送到客户端,适用于监控系统、实时数据分析等场景。
3、在线游戏:WebSocket 可以实现游戏客户端和服务器之间的实时双向通信,适用于多人在线游戏、竞技游戏等场景。
4、视频直播:WebSocket 可以实现视频流的实时传输和播放,适用于直播平台、在线教育等场景。
5、物联网:WebSocket 可以将传感器数据实时推送到云端,适用于智能家居、智能城市等场景。
desventajas de websocket:
1、长连接:WebSocket 使用长连接,因此需要维护连接状态,消耗一定的系统资源。
2、跨域限制:WebSocket 虽然支持跨域请求,但是在一些浏览器中,需要进行特殊的配置才能实现跨域请求。
3、安全性:WebSocket 与 HTTP 协议不同,没有同源策略的限制,因此存在一定的安全风险,需要注意安全问题。
4、兼容性:虽然现代浏览器都支持 WebSocket,但是一些老旧的浏览器不支持 WebSocket,需要进行特殊处理。
5、无法使用 HTTP 缓存机制:WebSocket 通信的协议与 HTTP 协议不同,无法使用 HTTP 缓存机制,需要单独进行缓存处理。
websocketResumen:
En el proceso de uso de WebSocket, debe prestar atención a sus deficiencias y elegir la escena adecuada para usar.