WebSockets 是一种在浏览器和服务器之间建立实时、双向通信的技术。它可以用于实时更新页面、聊天应用程序、游戏、股票报价等等。
Deno 是一个安全、现代化的运行时环境,用于在 JavaScript 和 TypeScript 中构建服务器端应用程序。它具有内置的模块管理器、安全的默认设置和强大的工具集,是 Node.js 的一个有力竞争对手。
在本文中,我们将学习如何使用 Deno 和 WebSockets 构建实时应用程序。
准备工作
在开始编写应用程序之前,我们需要安装 Deno 和 WebSockets 模块。使用以下命令进行安装:
$ deno install --allow-net --allow-read https://deno.land/std@0.95.0/ws/mod.ts
这将安装最新版本的 Deno 和 WebSockets 模块。
编写服务器端代码
下面是一个简单的服务器端代码,用于接受来自客户端的 WebSocket 连接请求:
-- -------------------- ---- ------- ------ - ----- - ---- --------------------------------------- ------ - ---------------- --------------------- - ---- ---------------------------------- ----- ------ - ------- ----- ---- --- ---------------------- ------ ------- -- ---- ------- --- ----- ------ --- -- ------- - -- -------- --- ------ - ----- - ----- -- ---------- -- ---------- ------- - - ---- ----------------- ----- ---------- ---------- -------- -- ---------------------- ------------ ----- -- - --------------------- -- ------ ---------- --------- ----- ------------- ------- --- --- --- - - ----- -------- ------------------- ---------- - ------------------- ------------ --- ----- ------ ----- -- --- - -- ------- ----- --- --------- - -------------------- --------- ----------- --------------- - ---- -- ------------------------------ - ------------------- --------------- - - -展开代码
该代码使用 Deno 的 serve
函数创建一个 HTTP 服务器,并接受 /ws
路径的 WebSocket 连接请求。当客户端连接成功后,将打印 Client connected
。当客户端发送消息时,将打印 Message received
并将消息发送回客户端。当客户端断开连接时,将打印 Client disconnected
。
编写客户端代码
下面是一个简单的客户端代码,用于连接到服务器端并发送消息:
-- -------------------- ---- ------- --------- ----- ------ ------ ----- --------------- -- ---------------- --------------- ------- ------ ------ ----------- ------------ -- ------- ------------------------------------- ---- ------------------ -------- ----- ------ - --- ------------------------------------ ---------------- - ------- -- - ------------------------------------------- -- ----- - ---------- - ------- -- -------- ------------- - ----- ------- - ----------------------------------------- --------------------- - --------- ------- -------展开代码
该代码使用 JavaScript 的 WebSocket
类连接到服务器端,并在消息到达时将其添加到页面中的 output
元素中。当用户单击 Send
按钮时,将使用 send
方法将输入框中的文本发送到服务器端。
运行应用程序
在终端中,使用以下命令启动服务器:
$ deno run --allow-net server.ts
在浏览器中打开 index.html
文件,您应该会看到一个输入框和一个按钮。在输入框中输入一些文本并单击按钮,您应该会在页面中看到您发送的消息,并在服务器端的终端中看到 Message received
。
结论
在本文中,我们学习了如何使用 Deno 和 WebSockets 构建实时应用程序。我们编写了一个简单的服务器端代码,用于接受客户端的 WebSocket 连接请求,并一个简单的客户端代码,用于连接到服务器端并发送消息。这是一个很好的起点,您可以根据自己的需要进行修改和扩展。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/675d0034e5138b92228952f6