WebSocket 是一种基于 TCP 协议的新型网络通信协议,可以实现双向通信,而且相比较 HTTP 协议,它的数据传输量更小,速度更快,能够实时推送数据,广泛应用于实时通信、在线游戏、在线交易等领域。Node.js 作为一种高效、轻量、事件驱动的 JavaScript 运行环境,可以方便地构建 WebSocket 服务器,实现实时通信。
WebSocket 原理
WebSocket 协议是基于 HTTP 协议的一种协议,它建立在 TCP 协议之上。WebSocket 客户端通过 HTTP 协议向服务器发送一个 Upgrade 请求,请求协议升级为 WebSocket 协议。服务器同意升级后,双方就可以直接通过 TCP 协议进行通信,实现双向通信。
构建 WebSocket 服务器
Node.js 提供了 ws 模块,可以方便地构建 WebSocket 服务器。下面是一个简单的示例代码:
----- --------- - -------------- ----- --- - --- ------------------ ----- ---- --- -------------------- -------- -------------- - ------------------- ------------ ---------------- -------- ----------------- - ---------------------- ---- --------- --------------- --------- - - --------- --- -------------- -------- ------- - ------------------- --------------- --- ---
代码中,首先引入了 ws 模块,然后创建了一个 WebSocket 服务器实例 wss,监听端口号为 8080。当有客户端连接到服务器时,会触发 connection 事件,然后可以通过 ws 对象进行通信。ws 对象有三个事件:message 事件表示接收到客户端发送的消息,close 事件表示客户端断开连接,error 事件表示出现错误。
WebSocket 客户端
在浏览器中,可以使用 WebSocket 对象进行 WebSocket 通信。下面是一个简单的示例代码:
----- ------ - --- --------------------------------- ------------------------------- -------- ------- - ------------------------- --------------------- --- ---------------------------------- -------- ------- - ---------------------- - - ------------ --- -------------------------------- -------- ------- - ---------------------------- ---
代码中,首先创建了一个 WebSocket 对象,指定连接的服务器地址为 ws://localhost:8080。当连接成功时,会触发 open 事件,然后可以通过 send 方法发送消息。当接收到服务器发送的消息时,会触发 message 事件。当与服务器的连接断开时,会触发 close 事件。
总结
利用 Node.js 构建 WebSocket 服务器可以方便地实现实时通信。通过 ws 模块,可以轻松地构建 WebSocket 服务器。在浏览器中,可以使用 WebSocket 对象进行 WebSocket 通信。WebSocket 协议是一种基于 TCP 协议的新型网络通信协议,可以实现双向通信,而且相比较 HTTP 协议,它的数据传输量更小,速度更快,能够实时推送数据,广泛应用于实时通信、在线游戏、在线交易等领域。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/663ee023d3423812e4d1cf5b