WebSocket 是一种在客户端和服务器之间建立实时双向通信的技术。在前端开发中,我们经常使用 WebSocket 来实现聊天室、实时通知等功能。而 Deno 是一个安全的 JavaScript 和 TypeScript 运行时环境,它提供了 WebSocket API,可以方便地实现 WebSocket 通信。
在本文中,我们将介绍如何使用 Deno 中的 WebSocket API 实现一个简单的聊天室。
准备工作
在开始之前,我们需要先安装 Deno。可以在 Deno 官网 下载安装包进行安装。
安装完成后,我们可以创建一个新的文件夹,在其中创建两个文件:server.ts
和 client.html
。其中,server.ts
用于实现服务器端代码,client.html
用于实现客户端代码。
实现服务器端代码
在 server.ts
中,我们需要先创建一个服务器并监听指定端口:
------ - ----- - ---- --------------------------------------- ----- ------ - ------- ----- ---- --- --------------------------------------
接下来,我们需要创建 WebSocket 服务器,并在收到客户端连接时创建 WebSocket 连接:
------ - ----- - ---- --------------------------------------- ------ - ---------------- ---------------------- ---------- - ---- ---------------------------------- ----- ------ - ------- ----- ---- --- -------------------------------------- ----- -------- --------------------- ---------- - ------------------- ------------- --- - --- ----- ------ -- -- ----- - -- ------- -- --- --------- - ---------------------- ---- ----- -------------- - ---- -- --- ---------- ----------- - ------------------------ ---- - ---- -- --------------------------- - ----------------------- ---- - - - ----- ----- - --------------------- -- ------- ------ --------- -- ---------------- - ----- -------------------------------------- - - - --- ----- ------ --- -- ------- - ----- - ----- -- ---------- -- ---------- ------- - - ---- ----------------- ----- ---------- ---------- -------- -- ---------------------- ------------ ----- -- - --------------------- -- ------ ---------- --------- ----- ------------- ------- --- --- --- -
在上面的代码中,我们使用 acceptWebSocket
函数创建 WebSocket 连接,并在 handleWebSocket
函数中处理收到的消息。当收到客户端发送的消息时,我们将消息原封不动地发送回去。
实现客户端代码
在 client.html
中,我们需要创建 WebSocket 连接并发送消息:
--------- ----- ------ ------ ----- --------------- -- ---------------- ---- ------------ ------- ------ ----- ------ ------------------------------ ------ ----------- ------------ -- ------- ------------------------------------- ------ --- ------------------- -------- ----- ------ - --- ---------------------------------- ------------------------------- ------- -- - ---------------------- ------------- --- ---------------------------------- ------- -- - -------------------- ---- ------- ---------------- ----- -- - ----------------------------- ------------ - ----------- ---------------------------------------------------- --- -------- ------------- - ----- ------------ - ----------------------------------- ----- ------- - ------------------- --------------------- ------------------ - --- - --------- ------- -------
在上面的代码中,我们首先创建了一个 WebSocket 连接,然后监听 open
和 message
事件。当连接成功时,我们在控制台输出一条消息。当收到服务器发送的消息时,我们创建一个新的 li
元素,并将消息添加到 ul
元素中。最后,我们定义了一个 sendMessage
函数,用于向服务器发送消息。
运行程序
在准备工作完成后,我们可以在终端中执行以下命令启动服务器:
---- --- ----------- ---------
然后,在浏览器中打开 client.html
文件,即可看到一个简单的聊天室界面。在输入框中输入消息并点击发送按钮,即可将消息发送给服务器,并在聊天室中显示出来。
总结
在本文中,我们介绍了如何使用 Deno 中的 WebSocket API 实现一个简单的聊天室。通过这个例子,我们可以学习到如何创建 WebSocket 服务器和客户端,以及如何处理 WebSocket 连接和消息。希望本文能对大家有所帮助。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65e5469b1886fbafa40fee95