如何在 Deno 中进行 WebSockets 的正确操作

阅读时长 5 分钟读完

WebSockets 是一种用于实时通信的网络协议。它通过基于事件的机制,在客户端与服务端之间实现通信。在现代 Web 应用中,WebSockets 已经成为了不可缺少的一部分。Deno 是一种新型的运行时环境,它提供了一些独特的优势,其中就包括更加安全和直接的 WebSockets 支持。在本文中,我们将探讨如何在 Deno 中进行 WebSockets 的正确操作。

安装 Deno

在开始之前,您需要先安装 Deno。可以从 Deno 官网 上找到适合您的安装包,并按照安装说明进行安装。

创建 WebSocket 服务器

在 Deno 中创建一个 WebSocket 服务器非常简单。以下是一个简单的例子:

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

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

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

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

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

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

该示例创建了一个 WebSocket 服务器,并在客户端连接时输出“client connected”消息,同时将接收到的消息通过 WebSocket 发送回客户端。在此代码中,我们使用了 Deno 标准库中的 servews 模块,前者用于创建 HTTP 服务器,后者用于处理 WebSocket 连接。WebSocket 连接需要一个 TCP 连接。Deno 提供了 Deno.listen() 方法用于创建 TCP 连接。

连接 WebSocket 服务器

要在客户端连接到 WebSocket 服务器,我们需要创建一个 WebSocket 对象。以下是一个简单的例子:

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

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

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

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

添加了三个事件监听器,分别监听 WebSocket 连接成功、收到消息和连接关闭事件。在此示例中,我们使用了浏览器的 WebSocket API,但是在 Deno 中也有类似的 API,您可以通过 Deno.connect() 方法创建 TCP 连接,然后调用 WebSocket.fromSocket() 方法将其转换为 WebSocket。

发送和接收消息

一旦客户端与服务器建立 WebSocket 连接,就可以通过 send() 方法发送消息,通过 message 事件接收消息。以下是一个简单的例子:

向服务器发送消息并在服务器接收消息时触发 message 事件。以下是一个示例:

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

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

在此代码片段中,我们检查了 WebSocket 实例接收到的每个事件。第一个 if 块检查消息是否为字符串类型。如果是,则在控制台中打印消息,并将其发送回客户端。第二个 if 块检查事件是否为 WebSocket 关闭事件。如果是,将在控制台中收到“websocket closed”消息。

结论

本文探讨了如何在 Deno 中正确地使用 WebSockets 进行实时通信。我们看到了如何创建 WebSocket 服务器、连接到服务器、发送和接收消息。如果您正在开发现代化的 Web 应用程序,那么 WebSockets 将是一种非常有用的工具。在 Deno 中使用 WebSockets,您可以更加安全地实现实时通信,因为 Deno 具有内置的安全性,防止了许多常见的 Web 安全漏洞。

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

纠错
反馈