使用 Deno 实现 Web API 实时推送

本文将介绍如何使用 Deno 实现 Web API 实时推送。我们将探讨如何使用 Deno 来构建 WebSocket 服务器并在客户端使用 WebSocket 进行实时通信。我们还将探讨在服务器发生更改时如何向客户端发送实时更新。

什么是 Deno?

Deno 是一种现代的 JavaScript 和 TypeScript 运行时,它没有 Node.js 的历史包袱和安全漏洞。Deno 旨在提供更好的安全性和开发人员体验。Deno 具有用于构建 Web 应用程序和命令行工具的简单 API,而无需使用其他库或框架。

什么是 WebSockets?

WebSocket 是一种在客户端和服务器之间实现实时通信的协议。WebSocket 可以在一个连接上为两个应用程序提供双向通信。在传统的 HTTP 请求和响应体系结构中,每个请求都需要一个新的连接;WebSockets 允许在一个连接中进行多次请求和响应。

WebSocket 服务器

让我们开始使用 Deno 来构建一个 WebSocket 服务器。为了实现这一点,我们将需要一个第三方库。Deno 中的 Deno 第三方模块是以 URL 形式加载的 JavaScript 文件或 TypeScript 文件。我们将使用 std/ws 模块来实现 WebSocket 服务器。

我们需要创建一个名为 server.ts 的文件。在文件中,我们将首先导入 std/ws 模块并创建一个 WebSocket 服务器:

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

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

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

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

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

在上面的代码中,我们使用 std/http/server.ts 模块来创建一个 HTTP 服务器。然后,我们检查是否有请求是可以接受 WebSocket 的。如果请求是可接受的,我们将调用 acceptWebSocket 函数并传递请求的参数。一旦连接建立,我们将调用 handleWebSocket 函数。

接下来,让我们创建一个函数,该函数将在客户端连接时被调用。我们将在该函数中实现我们的实时推送逻辑。

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

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

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

上面的代码中,我们首先向连接的客户端发送一条欢迎消息。然后,我们使用 setInterval 函数在每秒钟向客户端发送一条消息。

现在我们已经实现了一个简单的 WebSocket 服务器,可以向客户端发送实时更新。我们可以运行该服务器并在一个支持 WebSocket 的客户端(例如浏览器)中连接到它。

WebSocket 客户端

接下来,让我们看看在客户端如何使用 WebSocket 来接收实时更新。我们需要创建一个名为 client.html 的 HTML 文件。在该文件中,我们将使用 JavaScript 代码来创建 WebSocket 连接并处理来自服务器的消息。

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

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

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

在上面的代码中,我们使用 WebSocket 构造函数创建一个 WebSocket 连接。我们添加了两个事件监听器,一个监听器用于监听连接建立事件,另一个监听器用于监听来自服务器的消息。当服务器发送消息时,我们将在页面上创建一个新的列表项以显示该消息。

现在我们已经实现了一个完整的 WebSocket 应用程序,可以在服务器发生更改时向客户端发送实时更新。我们可以在一台计算机上运行 WebSocket 服务器,并在另一台计算机上运行 WebSocket 客户端,从而测试应用程序。

结论

在本文中,我们介绍了如何使用 Deno 来构建 WebSocket 服务器并使用 WebSocket 在客户端和服务器之间实现实时通信。我们还探讨了如何在服务器发生更改时向客户端发送实时更新。希望这篇文章对您有所帮助!

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