想在 Ubuntu 上快速跑通一套 JavaScript WebSocket 通信,关键不是概念有多复杂,而是先把环境、服务端和浏览器端这三步顺下来。下面这篇文章按“安装依赖、写服务端、写客户端、验证连接”的顺序展开,并保留完整命令与示例代码,方便你直接照着复现,也能顺手看清一次最基础的消息收发流程。
准备运行环境
先确认 Ubuntu 已安装 Node.js 和 npm。文章示例直接使用系统包管理器完成安装:
sudo apt update
sudo apt install nodejs npm
执行完成后,就具备了运行 WebSocket 示例所需的基础环境。
创建项目并安装 ws
为了避免示例文件散落在系统里,先新建一个项目目录并初始化 npm:

mkdir websocket-demo
cd websocket-demo
npm init -y
接着安装本文使用的 WebSocket 库 ws:
npm install ws
ws 是 Node.js 里较常见的 WebSocket 实现之一,适合用来快速搭建最小可运行示例。
编写并启动 WebSocket 服务器
在项目目录中新建 server.js,让它监听 8080 端口,并处理客户端连接与消息:
const WebSocket = require('ws');
// 创建WebSocket服务器
const wss = new WebSocket.Server({ port: 8080 });
// 监听连接事件
wss.on('connection', function connection(ws) {
console.log('客户端已连接');
// 监听消息事件
ws.on('message', function incoming(message) {
console.log('收到消息:', message);
});
// 向客户端发送消息
ws.send('你好!我是WebSocket服务器');
});
console.log('WebSocket服务器正在监听端口8080...');
这段服务端代码在做什么
它完成了三件事:

- 通过
new WebSocket.Server({ port: 8080 })启动一个监听8080端口的服务; - 在
connection事件里接收新的浏览器连接; - 收到客户端消息后打印日志,并主动向客户端发送一条欢迎消息。
启动服务器
保存文件后,在终端运行:
node server.js
如果控制台输出“WebSocket服务器正在监听端口8080...”,说明服务端已经正常启动。
编写浏览器端 WebSocket 客户端
接下来创建一个 client.html,用浏览器模拟客户端连接:
WebSocket Demo
WebSocket Demo
检查浏览器的控制台以查看WebSocket通信。
客户端连接流程怎么理解
页面加载完成后,脚本会执行 new WebSocket('ws://localhost:8080'),主动连接本机 8080 端口上的服务端。
ws.onopen:连接建立后触发,并向服务器发送“你好!我是WebSocket客户端”;ws.onmessage:接收服务器发回的数据;ws.onerror:连接过程中出现异常时输出错误;ws.onclose:连接关闭时输出日志。
这也是理解 WebSocket 最直接的一种方式:连接建立后,双方都可以主动发消息,而不必像传统 HTTP 那样一问一答。
测试连接是否成功
服务端启动后,直接在浏览器中打开 client.html,再打开开发者工具控制台,就可以观察整个连接过程。
正常情况下,你会看到以下几类结果:
- 浏览器控制台输出“连接已打开”;
- 浏览器收到服务端发来的“你好!我是WebSocket服务器”;
- Node.js 终端打印客户端连接成功,以及客户端发来的消息;
- 关闭页面或断开连接时,客户端触发
onclose日志。
如果这些日志都出现,说明这套最小化 WebSocket 通信已经跑通。
这个示例适合用来做什么
本文示例只覆盖最基础的连接与消息收发,但它已经足够帮助你确认几件事:Ubuntu 环境是否可用、Node.js 服务端是否监听成功、浏览器是否能正常建立 WebSocket 连接。
在实际项目里,通常还要继续补上更完整的能力,例如错误重试、消息格式规范化、安全认证等。不过从上面这套代码出发,再逐步加功能,会比一开始就引入复杂框架更容易定位问题,也更适合理解 WebSocket 的基本工作方式。







