Node.js 实现 WebSocket 监听的三种方式:原生、ws 与 Socket.IO

作者:慢半拍

时间:2026-10-23

浏览:94

本文详细介绍在 Node.js 中创建 WebSocket 监听的三种主要方式。首先解析基于原生 net 模块的基础实现,其次讲解使用 ws 库的标准做法,最后介绍流行的 Socket.IO 框架应用。通过对比三种方案的特点与代码示例,帮助开发者根据项目需求选择最适合的 WebSocket 通信实现方案。

文章目录

WebSocket 技术概述与 Node.js 优势

WebSocket 是 HTML5 规范中引入的一项技术,旨在实现浏览器与服务器之间的全双工通信。通过 WebSocket API,客户端与服务器仅需执行一次握手(handshaking)操作,即可建立持久连接。连接建立后,双方可以直接在快速通道中互相传输数据,无需重复建立连接。

WebSocket 是一种通信协议,架构上分为服务器端和客户端。服务器端部署在后台,负责维持与客户端的长连接,从而完成双向通信任务。客户端通常集成在支持 HTML5 的浏览器内核中,通过提供 JavaScript API,允许网页应用建立 WebSocket 连接。如需了解 Java 实现方式,可参考相关 Java WebSocket 案例。

为什么选择 Node.js?

1. 事件驱动架构:利用闭包机制,可以方便地管理客户端的生命周期。 2. 避免并发复杂性:无需担心多线程环境下的锁竞争和并行计算问题。 3. 高性能引擎:V8 引擎提供了极快的执行速度。 4. 代码复用:对于游戏开发等场景,前端与后端可共用同一套游戏逻辑代码。

当然,Node.js 也存在一些局限性:

1. 版本迭代迅速:频繁的版本更新可能导致兼容性挑战。 2. 生态成熟度:相较于传统服务器技术,Node.js 尚不够成熟,大型项目案例相对较少。 3. 并发模型差异:与其他服务器不同,Node.js 不支持针对不同连接进行独立的进程或线程操作。

在享受 Node.js 带来的开发便利性的同时,必须考虑到其成熟度问题,特别是在处理“长连接”的网络通信应用时。下文将分别测试并介绍几种常见的 Node.js WebSocket 实现框架。

Node.js 实现 WebSocket 监听的三种方式

接下来,将通过三种具体方式介绍 Node.js 创建 WebSocket 监听的实现方法,详细内容如下:

第一种方式:利用 Node.js 原生模块

// 引用 net 库的方式


const net = require('net');
 
const server = net.createServer((socket)=>{
 socket.on("connect",(data)=>{
 console.log("connect");
 })
});
 
server.listen("8111","127.0.0.1")

第二种方式:

// 使用 js 的原生方式(指 ws 库)


const WebSocketServer = require("ws").Server;
var ws = new WebSocketServer({ host: webConfig.ip, port: webConfig.port })
 
io.on('connection', function (socket) {
 socket.on("close", function () {
 console.log("server close");
 });
 
 socket.on("error", function (err) {
 console.log("server error " + err);
 });
 
 socket.on("message", function (cmd, data) {
 console.log("server rcv data=" + cmd);
 socket.send(data);
 });
});

第三种方式:

// 使用外部 socket.io 库的方式


const io = require('socket.io')(webConfig.port);
io.sockets.on('connection', function (socket) {
 socket.on('getSysConf', function (data) {
 console.log("get sys config ");
 });
});

总结

至此,关于 Node.js 多种创建 WebSocket 监听方式的文章介绍完毕。如需了解更多 Node.js 创建 WebSocket 监听的相关内容,请搜索本站历史文章或继续浏览后续文章。感谢大家的支持!

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章