Deno 中如何使用 WebSocket 进行双向通信

WebSocket 是一种在 Web 应用程序中实现双向通信的技术。Deno 是一种现代的、安全的 JavaScript/TypeScript 运行时,它提供了一种简单的方式来使用 WebSocket 进行双向通信。本文将介绍如何在 Deno 中使用 WebSocket 进行双向通信,并提供示例代码。

WebSocket 简介

WebSocket 是一种基于 TCP 的协议,在客户端和服务器之间实现双向通信。它可以在不使用轮询或长轮询的情况下,使服务器向客户端发送数据,并允许客户端向服务器发送数据。在浏览器中,可以使用 JavaScript 对 WebSocket 进行操作,以实现基于 WebSocket 的应用程序。

WebSocket 可以用于实现各种实时应用程序,包括实时游戏、在线聊天和股票报价等。它的优点包括低延迟、高效率和可靠性。

Deno 中使用 WebSocket 的步骤

在 Deno 中使用 WebSocket 进行双向通信的步骤如下:

  1. 导入 WebSocket 模块

要在 Deno 中使用 WebSocket,首先需要导入 WebSocket 模块。可以使用如下代码将 WebSocket 模块导入到 Deno 中:

------ - ----- - ---- ---------------------------------------
------ - ----------- --------------- - ---- ----------------------------------
  1. 创建 HTTP 服务器

在使用 WebSocket 之前,需要创建一个 HTTP 服务器,以便 WebSocket 可以与客户端建立连接。可以使用 Deno 的 std/http 模块来创建 HTTP 服务器:

----- ------ - ------- ----- ---- ---
----------------- ------ ------- -- -------------------------
  1. 监听 WebSocket 连接请求

在创建 HTTP 服务器之后,可以使用 WebSocket 模块中的 acceptWebSocket 函数来监听 WebSocket 连接请求:

--- ----- ------ --- -- ------- -
  -- ----------- --- ----- -- ------- --- ----- -- ---------------- -
    ----- - ----- -- ---------- -- ---------- ------- - - ----
    
    -----------------
      -----
      ----------
      ----------
      --------
    --
      ----------------------
      ------------ -- -
        --------------------- -- ------ ---------- ---------
      ---
  -
-
  1. 处理 WebSocket 连接

一旦客户端发起了 WebSocket 连接请求,就需要处理连接。可以创建一个名为 handleWebSocket 的异步函数来处理连接。在函数中,可以使用 WebSocket 提供的 send 和 receive 方法来实现双向通信:

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

在上述代码中,使用 for-await-of 循环读取 WebSocket 发送的消息,并使用 typeof 运算符来检查消息的类型。如果是字符串类型,则使用 console.log 打印出接收到的字符串,并使用 sock.send 方法发送回一个带有“Echo:”前缀的字符串;如果是二进制类型,则使用 console.log 打印出接收到的二进制数据,并使用 sock.send 方法将数据发送回客户端。

  1. 运行 Deno 应用程序

完成所有必要的配置后,即可运行 Deno 应用程序,并在浏览器中打开 WebSocket:

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

示例代码

下面是一个完整的示例程序,它使用 WebSocket 在 Deno 中实现了一个简单的双向通信应用程序:

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

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

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

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

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

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

结论

WebSocket 是一种在 Web 应用程序中实现双向通信的强大技术。在 Deno 中,使用 WebSocket 进行双向通信非常简单,并且可以大大提高应用程序的实时性和互动性。本文介绍了如何在 Deno 中使用 WebSocket 进行双向通信,并提供了示例代码。如果您已经掌握了这个技术,那么您可以开始构建您自己的实时应用程序。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/67399ddd317fbffedf17b0ab