WebSocket 是一种基于 TCP 协议的高级实时通信协议。在前端开发中,我们通常使用 WebSocket 来实现实时通信。而在 Deno 中,我们同样可以使用 WebSocket 进行实时聊天的实现。本文将介绍如何在 Deno 中使用 WebSocket 实现实时聊天,并附上完整的示例代码。
安装 Deno
首先,我们需要安装 Deno。Deno 是一个安全的 JavaScript 和 TypeScript 运行时环境,它使用 V8 引擎和 Rust 语言编写。在 Deno 中,我们可以像在浏览器中一样使用 JavaScript 和 TypeScript 进行编程。Deno 的安装非常简单,只需要在终端中运行以下命令即可:
curl -fsSL https://deno.land/x/install/install.sh | sh
创建 WebSocket 服务器
在 Deno 中,我们可以使用标准库中的 ws
模块创建 WebSocket 服务器。以下是创建 WebSocket 服务器的示例代码:
-- -------------------- ---- ------- ------ - ----- - ---- --------------------------------------- ------ - ---------------- ---------------------- --------- - ---- ---------------------------------- ----- ------ - ------- ----- ---- --- ---------------------- ------ ------- -- ---- ------- --- ----- ------ --- -- ------- - ----- - ----- -- ---------- -- ---------- ------- - - ---- --- - ----- ---- - ----- ----------------- ----- ---------- ---------- -------- --- ---------------------- ------------- --- ----- ------ ----- -- ----- - -- ------- ----- --- --------- - ----------------- ------- ----------- ------- ----- -------------- ----- ----------- - ---- -- ------ ---------- ----------- - ------------------- ------- --------- --------- -------------- - ---- -- ------------------------------ - ----- - ----- ------ - - ------ ---------------------- ------ ---- ------- ----- ---------- -------- - - - ----- ----- - --------------------- -- ------ ---------- --------- ----- ------------- ------- --- --- - -
在上述代码中,我们首先创建了一个 HTTP 服务器并监听 8080 端口。然后,我们使用 acceptWebSocket
函数创建了一个 WebSocket 连接。最后,我们通过 for await...of
循环来监听 WebSocket 事件,并在接收到文本消息时回复相同的消息。
创建 WebSocket 客户端
现在,我们可以创建一个简单的 WebSocket 客户端来测试我们的 WebSocket 服务器。以下是创建 WebSocket 客户端的示例代码:
-- -------------------- ---- ------- ----- ------ - --- --------------------------------- ------------- - -------- ------- - ---------------------- ------------- ------------------- ------------- -- ---------------- - -------- ------- - ----------------- ------- ----------- ------------ -- -------------- - -------- ------- - ---------------------- ------ ---- ------- ----------- ---------- -------------- --
在上述代码中,我们创建了一个 WebSocket 对象并连接到我们刚才创建的 WebSocket 服务器。然后,我们在 WebSocket 连接建立成功后发送了一条文本消息,并在接收到文本消息时输出消息内容。最后,我们在 WebSocket 关闭时输出关闭代码和原因。
实现实时聊天
现在,我们已经成功地创建了一个 WebSocket 服务器和一个 WebSocket 客户端。接下来,我们可以使用这两个组件来实现实时聊天。以下是实时聊天的示例代码:
-- -------------------- ---- ------- ------ - ----- - ---- --------------------------------------- ------ - ---------------- ---------------------- --------- - ---- ---------------------------------- ----- ------ - ------- ----- ---- --- ---------------------- ------ ------- -- ---- ------- ----- ------- - --- ----------------- --- ----- ------ --- -- ------- - ----- - ----- -- ---------- -- ---------- ------- - - ---- --- - ----- ---- - ----- ----------------- ----- ---------- ---------- -------- --- ---------------------- ------------- ------------------ --- ----- ------ ----- -- ----- - -- ------- ----- --- --------- - ----------------- ------- ----------- ------- --- ------ ------ -- -------- - ----- ------------------- - - ---- -- ------ ---------- ----------- - ------------------- ------- --------- --------- -------------- - ---- -- ------------------------------ - ----- - ----- ------ - - ------ ---------------------- ------ ---- ------- ----- ---------- -------- --------------------- - - - ----- ----- - --------------------- -- ------ ---------- --------- ----- ------------- ------- --- --- - -
在上述代码中,我们使用 Set
数据结构来存储所有 WebSocket 连接。当我们接收到文本消息时,我们会向所有的 WebSocket 连接发送相同的消息。
同时,我们在监听 WebSocket 关闭事件时,从 sockets
集合中删除已经关闭的连接,确保已经关闭的 WebSocket 连接不会再次被使用。
总结
在本文中,我们学习了如何在 Deno 中使用标准库中的 ws
模块创建 WebSocket 服务器和 WebSocket 客户端。我们还实现了一个简单的实时聊天应用程序,让你更好地了解 WebSocket 的使用。希望这篇文章对您有所帮助,让你更好地了解 Deno 和 WebSocket 的基础知识。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64520db9675af4061b5bd09d