介绍
ws
是一个基于 Node.js 的 WebSocket 实现,它提供了一种简单的方式来在客户端和服务器之间进行实时通信。ws
支持二进制数据、ping/pong 心跳以及拆分和组合消息等特性。
在本文中,我们将详细介绍如何使用 ws
进行前端开发,并给出相关示例代码以方便学习和理解。
安装
ws
是一个 npm 模块,因此你需要在项目中安装它。你可以使用以下命令安装:
npm install ws
创建 WebSocket 服务器
要创建一个 WebSocket 服务器,你需要使用 Node.js 内置的 http
模块并结合 ws
模块来完成。下面是一个示例代码:
-- -------------------- ---- ------- ----- ---- - ---------------- ----- --------- - -------------- ----- ------ - -------------------- ----- --- - --- ------------------ ------ --- -------------------- ---- -- - ---------------------- ---------------- ------ -- - --------------------------------------- --------------------------------- --- --- ------------------- -- -- - --------------------- ---
在上面的代码中,我们创建了一个 http
服务器并使用 WebSocket.Server
类创建了一个 WebSocket 服务器。当客户端连接成功后,服务器会输出一句提示语,并监听客户端发送的消息并回复相同的消息。
创建 WebSocket 客户端
要创建一个 WebSocket 客户端,你可以使用浏览器内置的 WebSocket
类。下面是一个示例代码:
-- -------------------- ---- ------- ----- -- - --- --------------------------------- --------- - -- -- - ----------------------- --------------- --------- -- ------------ - ------- -- - ---------------------------------- -- ---------- - -- -- - --------------------- --
在上面的代码中,我们创建了一个 WebSocket
实例并连接到了之前创建的 WebSocket 服务器。当连接成功后,客户端会发送一条消息并输出一句提示语,然后监听服务器发送的消息并输出消息内容。当连接关闭时,客户端会输出一句提示语。
发送和接收二进制数据
ws
支持发送和接收二进制数据。你可以使用 ArrayBuffer
或 Buffer
对象来存储和处理二进制数据。下面是一个示例代码:
-- -------------------- ---- ------- -- ------- ----- ------ - ------------------ ----- ------- ---------------- -- ------- ---------------- ------ -- - -- ----- ---------- ------------ - ----- ----- - --- ----------------- ------------------- - ---- -- ----- ---------- ------- - ------------------ - ---
在上面的代码中,我们创建了一个 Buffer
对象并发送了一个二进制数据。当客户端接收到消息时,它会检查消息类型并输出相应的内容。
心跳检测
ws
支持 ping/pong 心跳检测,通过发送心跳包可以帮助你确保连接的稳定性和可靠性。下面是一个示例代码:
// 开启心跳检测 ws._socket.setKeepAlive(true); // 设置心跳间隔时间 ws._socket.setKeepAliveInterval(10000);
在上面的代码中,我们使用 _socket
属性访问底层的 TCP 套接字,并设置了心跳检测的相关参数。
拆分和组合消息
ws
支持拆分和组合消息,这意味着你可以将一个大型的消息拆分为多个小消息发送
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/48890