如何在 Deno 应用程序中使用 WebSocket 进行实时数据传输

阅读时长 8 分钟读完

WebSocket 是一种在 Web 应用程序中实现实时数据传输的协议。它允许客户端和服务器之间建立一个持久的连接,以便在双方之间实时地发送数据。在前端开发中,我们通常使用 WebSocket 来实现实时聊天、实时数据更新等功能。而在 Deno 应用程序中,我们同样可以使用 WebSocket 来进行实时数据传输。

本文将详细介绍如何在 Deno 应用程序中使用 WebSocket 进行实时数据传输,包括如何创建 WebSocket 服务器和客户端,以及如何在它们之间传输数据。

创建 WebSocket 服务器

要创建一个 WebSocket 服务器,我们需要使用 Deno 自带的标准库中的 WebSocket 类。首先,我们需要创建一个 HTTP 服务器,然后将其升级为 WebSocket 服务器,如下所示:

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

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

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

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

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

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

在上面的代码中,我们首先创建了一个 HTTP 服务器,并监听在 8080 端口。当客户端发送一个 HTTP 请求到该服务器时,如果请求的 URL 是 /ws,则将其升级为 WebSocket 连接,并将其传递给 handleWebSocket 函数进行处理。handleWebSocket 函数中,我们可以接收客户端发送的消息,并向客户端发送消息。

创建 WebSocket 客户端

要创建一个 WebSocket 客户端,我们同样需要使用 Deno 自带的标准库中的 WebSocket 类。我们可以使用该类的 connect 方法来连接到 WebSocket 服务器,如下所示:

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

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

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

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

在上面的代码中,我们使用 connectWebSocket 方法连接到 ws://localhost:8080/ws 地址上的 WebSocket 服务器,并监听来自服务器的消息。当服务器发送一个消息时,我们可以在 for 循环中接收到该消息,并进行相应的处理。

传输数据

在 WebSocket 连接建立之后,我们可以使用 send 方法向服务器或客户端发送消息。发送消息时,我们需要将消息格式化为字符串或二进制数据。例如,要向服务器发送一条文本消息,我们可以使用以下代码:

而服务器收到该消息后,可以在 handleWebSocket 函数中使用以下代码进行相应的处理:

这样,服务器就会将该消息回传给客户端,并在客户端中打印出来。

示例代码

下面是一个完整的示例代码,它演示了如何在 Deno 应用程序中创建 WebSocket 服务器和客户端,并进行实时数据传输:

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

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

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

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

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

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

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

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

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

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

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

要启动该应用程序,我们可以在终端中分别输入以下命令:

在客户端中,我们可以输入一些文本消息,然后按回车键发送给服务器。服务器收到该消息后,会将其回传给客户端,并在客户端中打印出来。这样,我们就成功地在 Deno 应用程序中使用 WebSocket 进行实时数据传输了。

总结

本文详细介绍了如何在 Deno 应用程序中使用 WebSocket 进行实时数据传输。我们首先介绍了如何创建 WebSocket 服务器和客户端,然后讲解了如何在它们之间传输数据。通过本文的学习,读者可以了解如何在 Deno 应用程序中使用 WebSocket 实现实时聊天、实时数据更新等功能。

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

纠错
反馈