WebSocket 是一项用于在 Web 应用程序中进行双向通信的协议,它是实现实时通信最好的技术之一。Deno 是一款现代的 JavaScript 和 TypeScript 运行环境,它通过直接链接到 V8 引擎来执行 JavaScript 代码,同时也提供了开箱即用的模块、安全性、可扩展性等优点。
在本文中,我们将学习如何使用 Deno 中的 WebSocket 模块来实现即时通讯,并且通过示例代码来指导读者从零开始构建 WebSocket 服务器和客户端。
1. 安装 Deno
在开始学习之前,确保你已经安装了 Deno。你可以前往 Deno 的官方网站 下载并安装 Deno。
2. 创建 WebSocket 服务器
在 Deno 中使用 WebSocket 来创建服务器非常简单,我们只需要使用 WebSocket 模块的 listen
方法来监听客户端连接即可。
以下是一个简单的 WebSocket 服务器示例代码:
-- -------------------- ---- ------- ------ - ----- - ---- --------------------------------------- ------ - ---------- --------------------- - ---- ---------------------------------- ----- ------ - ------- ----- ---- --- ---------------------- ------ -- ------- -- ---- ------- --- ----- ------ --- -- ------- - ----- - ----- -- ---------- -- ---------- ------- - - ---- ----- ---- - ----- ----------------------- ---------------- --------- ------------- --- - --- ----- ------ -- -- ----- - -- ------- -- --- --------- - ----------------- ------- ---------- ---- ----- -------------- - ---- -- --- ---------- ----------- - ------------------- ------- ---------- ---- ----- -------------- - ---- -- --------------------------- - ----- - ----- ------ - - --- ---------------------- ------ ---- ----- ------- ------- ------------ - - - ----- ----- - ------------------------ --------------- - -
在这个示例中,我们首先创建一个 HTTP 服务器并监听 8080 端口,随后使用 WebSocket.accept
方法来接收客户端的连接。接下来使用 for...await
循环来实时监听客户端发来的消息,并进行处理。
当接收到文本消息时,我们会在服务器端输出消息内容,并通过 sock.send
方法将该消息发回客户端;当接收到二进制消息时,我们同样会输出消息内容,并将消息发回客户端;当客户端断开连接时,我们会输出关闭事件的信息。
在启动该示例代码之后,使用 WebSocket 客户端连接 http://localhost:8080,你将看到如下输出:
WebSocket server is started on port 8080 New WebSocket connection
这说明你的 WebSocket 服务器已经成功创建并接受了客户端连接。接下来,你可以进行双向通讯了。
3. 创建 WebSocket 客户端
在 Deno 中,我们同样可以使用 WebSocket 来创建客户端。以下是一个简单的 WebSocket 客户端示例代码:
-- -------------------- ---- ------- ----- ------ - --- --------------------------------- ------------- - ------- -- - ---------------------- ------------ ------------------- --------- -- ---------------- - ------- -- - -------------------- ---- ------- ---------------- --
在这个示例中,我们首先通过 new WebSocket
方法来创建一个 WebSocket 实例并连接到服务器端;当连接成功后,我们通过 socket.send
方法发送一个消息给服务器端。接下来,我们使用 socket.onmessage
方法来监听服务器端返回的消息,并在控制台输出该消息。当连接被关闭时,我们可以使用 socket.onclose
方法进行相应的处理。
4. 总结
在本文中,我们学习了如何使用 Deno 中的 WebSocket 模块来实现即时通讯,包括如何创建 WebSocket 服务器和客户端。WebSocket 的消息体可以是文本、二进制等,而且 WebSocket 可以进行双向通讯。WebSocket 在实现实时通讯时非常方便,同时也是现代 Web 应用程序中不可或缺的技术之一,希望本文对读者在实践 WebSocket 技术时提供一些帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64e2b8f3f6b2d6eab3dfc2d4