WebSocket 是一种在 Web 应用程序中进行全双工通信的协议。与传统的 HTTP 请求-响应协议不同,WebSocket 允许客户端和服务器之间建立持久性的连接,从而实现实时数据的双向传输。
在前端开发中,WebSocket 已经得到广泛的应用。而在 Node.js 中,我们同样可以通过一些库来使用 WebSocket。本文将介绍如何在 Node.js 中使用 WebSocket。
安装 WebSocket 库
首先,我们需要安装 WebSocket 库。常用的 WebSocket 库有 ws
和 socket.io
两种,我们可以根据不同的需求来选择具体的库。
安装 ws
库:
$ npm install ws --save
安装 socket.io
库:
$ npm install socket.io --save
使用 ws 库
建立 WebSocket 服务器
使用 ws
库建立 WebSocket 服务器非常简单。我们可以通过以下代码来建立一个简单的 WebSocket 服务器:
-- -------------------- ---- ------- ----- --------- - -------------- ----- ------ - --- ------------------ ----- ---- --- ----------------------- ------ -- - ------------------- -------------------- ------- -- - -------------------------------- ----------------------------- --- ---
代码说明:
- 第 1 行:引入 WebSocket 库。
- 第 3 行:创建一个 WebSocket 服务器,监听端口号为 8080。
- 第 5 行:当有客户端连接上来时,会触发
connection
事件。 - 第 7-11 行:当收到客户端发来的消息时,会触发
message
事件,并发送一条回复。
建立 WebSocket 客户端
使用 ws
库建立 WebSocket 客户端同样非常简单。我们可以通过以下代码来建立一个简单的 WebSocket 客户端:
-- -------------------- ---- ------- ----- --------- - -------------- ----- ------ - --- --------------------------------- ------------- - -- -- - ------------------- ------------------- ------------- -- ---------------- - ------- -- - ------------------------------------- --
代码说明:
- 第 1 行:引入 WebSocket 库。
- 第 3 行:创建一个 WebSocket 客户端,连接到服务器地址为
ws://localhost:8080
的 WebSocket 服务器。 - 第 5-8 行:当连接成功时,会触发
onopen
事件,并发送一条消息。 - 第 10-12 行:当收到服务器发来的消息时,会触发
onmessage
事件,并输出收到的消息。
使用 socket.io 库
相较于 ws
库,使用 socket.io
库建立 WebSocket 服务器和客户端需要的代码量更少。我们可以通过以下代码来建立一个简单的 WebSocket 服务器和客户端:
-- -------------------- ---- ------- ----- -------- - --------------------- ----- ---- - ---------------- ----- ------ - ----------------------- ---- -- - -------------- --------- --- ------------------- -- -- - ------------------- ----------- --- ----- -- - ---------------- - ----- - ------- ---- - --- ------------------- ------ -- - ------------------- -------------------- ------- -- - -------------------------------- ----------------------------- --- ---
-- -------------------- ---- ------- ----- -------- - ---------------------------- ----- ------ - -------------------------------- -------------------- -- -- - ------------------- ------------------- ------------- --- -------------------- ------- -- - -------------------------------- ---
代码说明:
- 第 1 行:引入
socket.io
库。 - 第 2 行:引入
http
库,用于创建 HTTP 服务器。 - 第 4-8 行:创建一个 HTTP 服务器,并监听端口号为 8080。
- 第 10 行:使用
socket.io
包装 HTTP 服务器,创建一个 WebSocket 服务器。 - 第 14-18 行:当有客户端连接上来时,会触发
connection
事件。 - 第 20-24 行:当收到客户端发来的消息时,会触发
message
事件,并发送一条回复。 - 第 28 行:创建一个 WebSocket 客户端,连接到服务器地址为
ws://localhost:8080
的 WebSocket 服务器。 - 第 30-33 行:当连接成功时,会触发
connect
事件,并发送一条消息。 - 第 35-37 行:当收到服务器发来的消息时,会触发
message
事件,并输出收到的消息。
总结
本文介绍了在 Node.js 中如何使用 WebSocket。我们可以通过 ws
库或 socket.io
库来建立 WebSocket 服务器和客户端。使用 ws
库需要编写更多的代码,并且需要对 WebSocket 协议有更深入的了解;而使用 socket.io
库可以更快捷地建立 WebSocket 应用。无论使用哪种库,WebSocket 都可以帮助我们实现实时通信,提升 Web 应用的用户体验。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6488fc4f48841e989474cb23