返回

聊聊websocket——基于Node.js+ws模块实现websocket通信!

前端

❤️ WebSocket 是什么?

WebSocket 是一种网络通信协议,它允许在客户端和服务器之间建立一个长连接,从而实现双向实时通信。与传统的 HTTP 请求不同,WebSocket 通信是一种持久连接,客户端和服务器可以随时相互发送数据,而无需不断建立和断开连接。

❤️ Node.js 与 ws 模块

Node.js 是一个流行的 JavaScript 运行时环境,它允许您在服务器端执行 JavaScript 代码。ws 模块是 Node.js 的一个流行的 WebSocket 库,它提供了构建 WebSocket 服务器和客户端的便捷方法。

❤️ 创建一个聊天室案例

为了演示如何使用 Node.js 和 ws 模块构建 WebSocket 通信,我们将创建一个简单的聊天室案例。

  1. 安装依赖
npm install express ws
  1. 创建服务器
const express = require('express');
const WebSocket = require('ws');

const app = express();
const server = app.listen(3000);

const wss = new WebSocket.Server({ server });
  1. 处理 WebSocket 连接
wss.on('connection', function connection(ws) {
  ws.on('message', function incoming(message) {
    console.log('received: %s', message);
    wss.clients.forEach(function each(client) {
      if (client !== ws && client.readyState === WebSocket.OPEN) {
        client.send(message);
      }
    });
  });
});
  1. 创建客户端
const WebSocket = require('ws');

const ws = new WebSocket('ws://localhost:3000');

ws.on('open', function open() {
  ws.send('hello');
});

ws.on('message', function incoming(data) {
  console.log('received: %s', data);
});
  1. 运行项目
node server.js
  1. 测试聊天室

打开两个终端窗口,分别运行客户端和服务器脚本。在第一个终端窗口中,发送一条消息,您应该会在第二个终端窗口中看到该消息。

❤️ 总结

通过这个聊天室案例,我们学习了如何使用 Node.js 和 ws 模块构建 WebSocket 通信。WebSocket 非常适合构建实时交互性强的应用,例如聊天室、游戏和协作工具。