WebSockets 是一种实现客户端和服务器之间实时通讯的协议,能够实现服务器端对客户端实时推送数据,适合于需要大量实时数据传输的应用场景,如聊天室、在线游戏等。在 Deno 中使用 WebSockets 实现实时通讯非常简单,下面将详细介绍如何实现。
第一步:创建 WebSocket 服务器
在 Deno 中创建 WebSocket 服务器非常简单,只需要使用内置的 WebSocket API 即可。以下是一个简单的示例代码:
-- -------------------- ---- ------- ------ - ----- - ---- --------------------------------------- ------ - ---------------- --------- - ---- ---------------------------------- ----- ------ - ------- ----- ---- --- ---------------------- ------ -- ------- -- ---- ------- ----- -------- ---------------- ---------- - ---------------------- ------------ --- ----- ------ ----- -- ------- - ---------------------- -------- ------- -- ------- ----- --- --------- - ---------------------- ---------- ------- ----- --------------------- -------- ----------- - - - --- ----- ------ --- -- ------- - ----------------- ---------- --------- -- -------- --- ------ - ----- - ----- -- ---------- -- ---------- ------- - - ---- ----------------- ----- ---------- ---------- ------- ------------------ - ---- - ------------- ------- ---- ----- ------ ------ --- - -
以上代码创建了一个 WebSocket 服务器,用于监听 3000 端口。当客户端连接 WebSocket 服务器时,将打印 "WebSocket connected",当客户端发送消息时,将打印 "WebSocket message:" 和消息内容,并回复 "Received message: " + 消息内容。
第二步:创建 WebSocket 客户端
在 Deno 中创建 WebSocket 客户端同样非常简单,只需要使用内置的 WebSocket API 即可。以下是一个简单的示例代码:
-- -------------------- ---- ------- ----- ------ - --- ------------------------------------ ------------------------------- -- -- - ---------------------- ------------ --- ---------------------------------- ------- -- - ---------------------- ---------- ------------ --- ------------------ ---- -------------
以上代码创建了一个 WebSocket 客户端,连接到 3000 端口的 WebSocket 服务器。当客户端连接成功时,将打印 "WebSocket connected",当客户端收到消息时,将打印 "WebSocket message:" 和消息内容。客户端也可以通过 socket.send()
发送消息到服务器端。
第三步:实现实时通讯
通过以上步骤,我们已经成功创建了一个 WebSocket 服务器和一个 WebSocket 客户端。接下来我们来实现实时通讯,即服务器端可以实时向客户端推送消息。
以下是一个简单的示例代码:
-- -------------------- ---- ------- ------ - ----- - ---- --------------------------------------- ------ - ---------------- --------- - ---- ---------------------------------- ----- ------ - ------- ----- ---- --- ---------------------- ------ -- ------- -- ---- ------- ----- -------- ---------------- ---------- - ---------------------- ------------ --- ----- ------ ----- -- ------- - ---------------------- -------- ------- -- ------- ----- --- --------- - ---------------------- ---------- ------- ----- --------------------- -------- ----------- - - - ----- -------- ----------- - --- -------------- -- - ------------------------ -- - ------------------- ----- ----- ------------------------------- --- -- ------ --- ----- ------ --- -- ------- - ----------------- ---------- --------- -- -------- --- ------ - ----- - ----- -- ---------- -- ---------- ------- - - ---- ----------------- ----- ---------- ---------- ------- ---------------- -- - ---------------------- ------------ -------- --------------------- ----------------- --- - ---- - ------------- ------- ---- ----- ------ ------ --- - -
以上代码在第一步代码的基础上添加了以下逻辑:
- 创建一个数组
sockets
,用于存储所有连接到 WebSocket 服务器的客户端。 - 使用
setInterval()
每隔 1 秒向所有客户端发送当前时间。 - 在客户端连接成功时将客户端加入
sockets
数组。
在客户端连接成功时,所有客户端将定期收到服务器推送的消息,实现了实时通讯。
总结
以上是如何在 Deno 中使用 WebSockets 进行实时通讯的详细介绍。希望这篇文章能对正在学习 Deno 的开发者有所帮助。完整示例代码可以在 GitHub 中找到。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/646c9572968c7c53b0b8ad81