本文将介绍如何使用 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