温馨提示×

首页 > 教程 > 编程开发 > Node.js基础教程 > 使用WebSocket实现实时通信

使用WebSocket实现实时通信

WebSocket是一种在单个TCP连接上进行全双工通信的协议,它允许客户端和服务器之间进行实时通信。在Node.js中,可以使用第三方库ws来实现WebSocket通信。

下面是一个使用WebSocket实现实时通信的基础教程:

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

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

  ws.on('message', function incoming(message) {
    console.log('Received: %s', message);
    // 可以在这里处理客户端发送的消息,并向客户端发送响应
    ws.send('Server received: ' + message);
  });

  ws.on('close', function close() {
    console.log('Client disconnected');
  });
});
  1. 创建一个客户端HTML页面,用于测试WebSocket通信:
<!DOCTYPE html>
<html>
<head>
  <title>WebSocket Test</title>
</head>
<body>
  <input type="text" id="input" placeholder="Enter message" />
  <button onclick="sendMessage()">Send</button>

  <script>
    const ws = new WebSocket('ws://localhost:8080');

    ws.onopen = function() {
      console.log('Connected to server');
    };

    ws.onmessage = function(event) {
      console.log('Received: ' + event.data);
    };

    function sendMessage() {
      const input = document.getElementById('input');
      ws.send(input.value);
      input.value = '';
    }
  </script>
</body>
</html>
  1. 运行Node.js服务器,并打开客户端HTML页面:
node server.js

现在,您可以在客户端页面输入消息并点击发送按钮,消息将通过WebSocket发送到服务器,并服务器会将收到的消息发送回客户端,从而实现了实时通信。

这是一个简单的使用WebSocket实现实时通信的基础教程,您可以根据实际需求进行扩展和优化。