什么是 WebSocket?
WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。WebSocket 在 WebSocket API 标准下涵盖了 Web 服务器和浏览器之间的标准通信协议,WebSocket 使得客户端和服务器之间的数据交换变得更加简单高效,同时 Web 应用程序也能够利用 WebSocket 与服务器实现实时通信和更新。
Node.js 中的 WebSocket
Node.js 的 WebSocket 模块实现了 WebSocket 协议,可以与浏览器上运行的 JavaScript 客户端进行通信。下面我们将介绍如何在 Node.js 中使用 WebSocket 模块实现客户端和服务器之间的双向通信。
安装 WebSocket 依赖
首先,我们需要使用 npm 包管理器安装 WebSocket 依赖:
npm install websocket
服务器端代码
在服务器端,我们需要引用 WebSocket 模块并创建一个 WebSocket 服务器对象,用于监听客户端请求、处理连接和消息传递等操作。下面是一个简单的示例代码:
-- -------------------- ---- ------- ----- --------------- - ---------------------------- ----- ---- - ---------------- -- ---- ---- --- ----- ------ - --------------------------- --------- -- ---- -- - ---- ------ --------- --- ----- -------- - --- ----------------- ----------- ------ --- -- -- --------- ---- ---------------------- --------- -- - ----- ---------- - -------------------- ---------------- ---------------------- ---------- ------------ -- ------ ------------------------ --------- -- - --------------------- ---------- ------------------ --------------------------- ------------ --- -- ------ ---------------------- -- -- - ---------------------- ---------- ---------- --- --- -- -- ---- --- ------------------- -- -- - ------------------- ----------- ---
在上面的代码中,我们创建了一个 HTTP 服务器并把它传给了 WebSocket 服务器对象,以便它们可以在同一个端口上工作。然后,我们监听了 request
事件,当客户端的 WebSocket 连接请求到达时,我们响应该请求并在 accept
回调函数中获取连接对象,随后我们监听了该连接对象的 message
事件和 close
事件。
在 message
事件回调函数中,我们处理客户端发送过来的消息,并在控制台上输出该消息。然后,我们通过该连接对象的 sendUTF()
方法向客户端发送一条回复消息。
在 close
事件回调函数中,我们只是简单地在控制台上输出一条连接关闭了的信息。
最后,我们使用 listen()
方法启动 HTTP 服务器,监听在 8080 端口上。
客户端代码
在客户端,我们需要创建一个 WebSocket 对象并连接到服务器,然后监听消息和连接关闭事件,并向服务器发送消息等操作。下面是一个简单的示例客户端代码:
-- -------------------- ---- ------- ----- --------- - ---------------------------- -- ---- --------- ----- ----- ------ - --- ------------ -- ------ -------------------- ------------ -- - ---------------------- ------ ------------- -- ------ ------------------------ --------- -- - --------------------- ---------- ------------------ --- -- ---------- -------------------------- ---------- --- -- ------ ------------------ -- -- - ---------------------- ------ ---------- --- -- ----- -------------------------------------- -----------------
在上面的代码中,我们创建了一个 WebSocket 客户端对象,并监听了它的 connect
事件和 close
事件。
在 connect
事件回调函数中,我们获取了连接对象,并监听了连接对象的 message
事件。在 message
事件回调函数中,我们只是简单地在控制台上输出一条接收到的消息。
然后,我们向服务器发送了一条消息,使用 sendUTF()
方法发送。最后,我们使用 connect()
方法连接到服务器。
总结
通过上面的代码示例,我们可以看到 Node.js 中 WebSocket 的基本用法,以及客户端和服务器之间进行双向通信的实现方式。在真实的生产环境中,我们需要根据实际需求进行 WebSocket 的配置和使用,以满足我们的业务需求。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6469ebea968c7c53b09b36c9