Deno 中如何使用 WebSocket 实现实时通信

阅读时长 5 分钟读完

WebSocket 是一种实现了全双工通信的协议,可以在客户端和服务器之间建立实时通信的连接,使得数据可以即时地在双方之间传输。在前端开发中,WebSocket 经常被用来实现实时通信、多人在线游戏和在线编程等功能。而在 Deno 中,使用 WebSocket 实现实时通信也非常简单。

建立 WebSocket 连接

在 Deno 中,使用 WebSocket 与建立 HTTP 连接类似,只需实例化一个 WebSocket 类并通过指定 URL 来与服务器建立连接。下面是一个建立 WebSocket 连接的示例代码:

这段代码中,我们首先导入了 io 和 WebSocket 模块,然后通过实例化一个 WebSocket 类并指定 URL “ws://localhost:8080/ws” 来建立了一个 WebSocket 连接。其中,“ws” 表示 WebSocket 协议,“localhost” 表示服务器地址,“8080” 表示服务器端口号,“/ws” 表示服务器的 WebSocket 服务路径。

发送和接收消息

建立好 WebSocket 连接后,我们就可以通过发送和接收消息来实现实时通信了。WebSocket 提供了 send() 方法和 onmessage 事件来实现消息的发送和接收。下面是一个简单的示例代码:

-- -------------------- ---- -------
------ -- ---- ----------------------------------
------ - --------- - ---- ----------------------------------

----- ------ - --- ------------------------------------

------------- - -- -- -
  ---------------------- ---------
  ---------------------
--

---------------- - ------- -- -
  --------------------- ------------
--

在这段代码中,我们通过 onopen 事件在 WebSocket 连接建立后发送了一条消息“hello”,并且通过 onmessage 事件在接收到服务器返回的消息后进行了打印。

实现多人在线聊天室

除了简单的消息发送和接收外,WebSocket 还可以实现多人在线聊天室等复杂的功能。下面是一个使用 WebSocket 实现多人在线聊天室的示例代码:

-- -------------------- ---- -------
------ - ----- - ---- ---------------------------------------
------ - ---------------- --------- - ---- ----------------------------------

----- ------ - ------- ----- ---- ---
---------------------------------------------

----- ------- - --- -----------------

----- -------- ----------------------- ---------- -
  --------------------

  --- ----- ------ ----- -- ------- -
    -- ------- ----- --- --------- -
      -----------------
    -
  -

  -----------------------
-

----- -------- ------------------ ------- -
  --- ------ ------ -- -------- -
    ----- ---------------------
  -
-

--- ----- ------ ------- -- ------- -
  -- ------------ --- ------ -
    ----- - ----- -- ---------- -- ---------- ------- - - --------
    -----------------
      -----
      ----------
      ----------
      --------
    -------------------------
  -
-

这段代码中,我们首先启动了一个 HTTP 服务器并监听 WebSocket 连接请求。当有连接请求时,我们使用 acceptWebSocket() 方法来创建一个 WebSocket 实例,并将它添加到 sockets 集合中,然后通过 for 循环等待来自客户端的消息。如果收到了字符串类型的消息,就调用 broadcast() 方法把消息发送给聊天室中的所有用户。

总结

本文介绍了如何在 Deno 中使用 WebSocket 实现实时通信,包括建立 WebSocket 连接、发送和接收消息以及实现多人在线聊天室等复杂功能。通过这些示例代码,我们可以更好地理解 WebSocket 的基本原理和使用方法,并在实际开发中应用它来实现更丰富多彩的功能。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6497e91748841e98944f21d7

纠错
反馈