WebSocket是一种在客户端和服务器之间建立持久连接的通信协议,它允许服务器主动向客户端推送数据,而不需要客户端发起请求。WebSocket通信可以实现实时的双向通信,非常适合于需要实时更新数据的应用场景,比如聊天应用、实时游戏等。

在Node.js中,我们可以使用第三方模块ws来实现WebSocket通信。下面是一个基础的WebSocket通信教程:

  1. 首先,安装ws模块:
npm install ws
  1. 创建一个WebSocket服务器:
const WebSocket = require('ws');
const wss = new WebSocket.Server({ port: 8080 });

wss.on('connection', function (ws) {
  console.log('Client connected');

  ws.on('message', function (message) {
    console.log('Received message: ' + message);
    ws.send('Server received message: ' + message);
  });

  ws.on('close', function () {
    console.log('Client disconnected');
  });
});

这段代码创建了一个WebSocket服务器,并监听8080端口。当客户端连接到服务器时,会触发connection事件,然后可以处理客户端发送的消息和断开连接的事件。

  1. 创建一个WebSocket客户端:
const WebSocket = require('ws');
const ws = new WebSocket('ws://localhost:8080');

ws.on('open', function () {
  console.log('Connected to server');
  ws.send('Hello, server!');
});

ws.on('message', function (message) {
  console.log('Received message: ' + message);
});

这段代码创建了一个WebSocket客户端,连接到localhost的8080端口的服务器。当连接成功时,会触发open事件,然后发送一条消息给服务器。客户端接收到服务器发送的消息时,会触发message事件。

通过以上步骤,我们就可以实现一个简单的WebSocket通信。当客户端发送消息给服务器时,服务器会收到消息并发送回一个响应,客户端也可以接收到这个响应。WebSocket通信可以实现实时的双向通信,非常适合于实时更新数据的应用场景。