Deno 中内置的 WebSocket 库详解

阅读时长 4 分钟读完

WebSocket 是一种基于 TCP 的协议,可提供双向通信,并在浏览器和服务器之间创建持久连接。而 Deno 是一种新的后端运行时环境,它具有安全性和稳定性等特点。Deno 中有内置的 WebSocket 库,可以直接使用,本文将详细讲解其使用方法。

WebSocket 库的引入

WebSocket 库在 Deno 中是内置的,可以直接使用,只需要使用如下代码引入:

引入后就可以使用 WebSocket 库的所有方法了。

创建 WebSocket 服务器

使用 WebSocket 库创建 WebSocket 服务器相对容易,只需要使用 WebSocket 服务器的 listen 方法,如下所示:

-- -------------------- ---- -------
----- ------ - --- ---------------------------------
------------------------------- ------- -- -
  ---------------------- ---------
---
---------------------------------- ------- -- -
  ----------------------- ------------
  ------------------------
---
-------------------------------- ------- -- -
  ---------------------- ---------
---

以上代码使用给定的 URL ws://localhost:8080 创建 WebSocket 服务器,然后为 openmessageclose 事件添加相应的事件监听器,event.data 用于读取从客户端发送来的消息,并将消息发送给客户端。在上面的代码中,当 WebSocket 连接建立时,将会输出 “WebSocket 连接已经建立” 的信息,当接收到客户端发送的消息时,将会输出 “服务器接收到消息” 的信息并将消息发送给客户端,当服务器连接关闭时,将会输出 “WebSocket 连接已经关闭” 的信息。

创建 WebSocket 客户端

使用 WebSocket 库创建 WebSocket 客户端也相对容易,只需要使用 WebSocket 客户端的 connect 方法,如下所示:

-- -------------------- ---- -------
----- ------ - ----- --- ---------------------------------
------------- - ------- -- -
  ---------------------- ---------
--
---------------- - ------- -- -
  -------------------------- ------------
--
-------------- - ------- -- -
  ---------------------- ---------
--

以上代码使用给定的 URL ws://localhost:8080 创建 WebSocket 客户端,然后为 onopenonmessageonclose 事件添加相应的事件监听器,event.data 用于读取从服务器发送来的消息。在上面的代码中,当 WebSocket 连接建立时,将会输出 “WebSocket 连接已经建立” 的信息,当接收到服务器发送的消息时,将会输出 “接收到来自服务器的消息”的信息,当 WebSocket 连接关闭时,将会输出 “WebSocket 连接已经关闭” 的信息。

WebSocket 库的优点

WebSocket 与 HTTP 相比有如下优点:

  1. WebSocket 具有更小的头部负载,比 HTTP 更加轻松高效。
  2. WebSocket 具有更快的速度,因为它是针对长时间连接而设计的。
  3. WebSocket 可以在单个 TCP 连接上处理双向通信,而无需使用多个连接。

结论

在 Deno 中内置的 WebSocket 库是一个十分实用的工具。它可以用来在服务器和客户端之间建立长时间连接,在实时通信应用程序中使用。此外,WebSocket 库还具有更快、更高效的连接和更小的头部负载等优点。

本文详细介绍了 WebSocket 库的引入方式,以及如何在 Deno 中创建 WebSocket 服务器和客户端。希望本文对于学习 Deno 和 WebSocket 库有指导意义。更多有关 WebSocket 库的详细信息,请参考官方文档。

参考文献

  1. Deno 官方文档,https://deno.land/
  2. WebSocket 官方规范,https://tools.ietf.org/html/rfc6455

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/67722cac6d66e0f9aad5470f

纠错
反馈