WebSocket 是一种在 Web 应用程序中实现实时数据传输的协议。它允许客户端和服务器之间建立一个持久的连接,以便在双方之间实时地发送数据。在前端开发中,我们通常使用 WebSocket 来实现实时聊天、实时数据更新等功能。而在 Deno 应用程序中,我们同样可以使用 WebSocket 来进行实时数据传输。
本文将详细介绍如何在 Deno 应用程序中使用 WebSocket 进行实时数据传输,包括如何创建 WebSocket 服务器和客户端,以及如何在它们之间传输数据。
创建 WebSocket 服务器
要创建一个 WebSocket 服务器,我们需要使用 Deno 自带的标准库中的 WebSocket
类。首先,我们需要创建一个 HTTP 服务器,然后将其升级为 WebSocket 服务器,如下所示:
-- -------------------- ---- ------- ------ - ----- - ---- --------------------------------------- ------ - ---------------- --------- - ---- ---------------------------------- ----- ------ - ------- ----- ---- --- ----------------- ------ --------- -- ---- ------- --- ----- ------ --- -- ------- - -- -------- --- ------ - ----- - ----- -- ---------- -- ---------- ------- - - ---- ----------------- ----- ---------- ---------- -------- ------------------------- - ---- - ------------- ------- ---- ----- ------- ------- --- - - ----- -------- ------------------- ---------- - ---------------------- ------------- --- ----- ------ ----- -- --- - -- ------- ----- --- --------- - --------------------- ---- ---------- ------- ----- ------------ ----- ----------- - ---- -- ------ ---------- ----------- - --------------------- ------ ---------- ------- ----- --------------- - - ---------------------- ---------- -
在上面的代码中,我们首先创建了一个 HTTP 服务器,并监听在 8080 端口。当客户端发送一个 HTTP 请求到该服务器时,如果请求的 URL 是 /ws
,则将其升级为 WebSocket 连接,并将其传递给 handleWebSocket
函数进行处理。handleWebSocket
函数中,我们可以接收客户端发送的消息,并向客户端发送消息。
创建 WebSocket 客户端
要创建一个 WebSocket 客户端,我们同样需要使用 Deno 自带的标准库中的 WebSocket
类。我们可以使用该类的 connect
方法来连接到 WebSocket 服务器,如下所示:
-- -------------------- ---- ------- ------ - ---------------- - ---- ---------------------------------- ----- -- - ----- ------------------------------------------- ---------------------- ------------- --- ----- ------ ----- -- --- - -- ------- ----- --- --------- - --------------------- ---- ---------- ------- - ---- -- ------ ---------- ----------- - --------------------- ------ ---------- ------- - -
在上面的代码中,我们使用 connectWebSocket
方法连接到 ws://localhost:8080/ws
地址上的 WebSocket 服务器,并监听来自服务器的消息。当服务器发送一个消息时,我们可以在 for
循环中接收到该消息,并进行相应的处理。
传输数据
在 WebSocket 连接建立之后,我们可以使用 send
方法向服务器或客户端发送消息。发送消息时,我们需要将消息格式化为字符串或二进制数据。例如,要向服务器发送一条文本消息,我们可以使用以下代码:
await ws.send("Hello, server!");
而服务器收到该消息后,可以在 handleWebSocket
函数中使用以下代码进行相应的处理:
console.log("Received text message:", event); await ws.send(`You said: ${event}`);
这样,服务器就会将该消息回传给客户端,并在客户端中打印出来。
示例代码
下面是一个完整的示例代码,它演示了如何在 Deno 应用程序中创建 WebSocket 服务器和客户端,并进行实时数据传输:
-- -------------------- ---- ------- -- --------- ------ - ----- - ---- --------------------------------------- ------ - ---------------- --------- - ---- ---------------------------------- ----- ------ - ------- ----- ---- --- ----------------- ------ --------- -- ---- ------- --- ----- ------ --- -- ------- - -- -------- --- ------ - ----- - ----- -- ---------- -- ---------- ------- - - ---- ----------------- ----- ---------- ---------- -------- ------------------------- - ---- - ------------- ------- ---- ----- ------- ------- --- - - ----- -------- ------------------- ---------- - ---------------------- ------------- --- ----- ------ ----- -- --- - -- ------- ----- --- --------- - --------------------- ---- ---------- ------- ----- ------------ ----- ----------- - ---- -- ------ ---------- ----------- - --------------------- ------ ---------- ------- ----- --------------- - - ---------------------- ---------- - -- --------- ------ - ---------------- - ---- ---------------------------------- ----- -- - ----- ------------------------------------------- ---------------------- ------------- --- ----- ------ ----- -- --- - -- ------- ----- --- --------- - --------------------- ---- ---------- ------- - ---- -- ------ ---------- ----------- - --------------------- ------ ---------- ------- - - ----- --------------- ----------
要启动该应用程序,我们可以在终端中分别输入以下命令:
deno run --allow-net server.ts deno run --allow-net client.ts
在客户端中,我们可以输入一些文本消息,然后按回车键发送给服务器。服务器收到该消息后,会将其回传给客户端,并在客户端中打印出来。这样,我们就成功地在 Deno 应用程序中使用 WebSocket 进行实时数据传输了。
总结
本文详细介绍了如何在 Deno 应用程序中使用 WebSocket 进行实时数据传输。我们首先介绍了如何创建 WebSocket 服务器和客户端,然后讲解了如何在它们之间传输数据。通过本文的学习,读者可以了解如何在 Deno 应用程序中使用 WebSocket 实现实时聊天、实时数据更新等功能。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/658a7bb3eb4cecbf2dfa7a2d