如何在 Deno 中使用 WebSocket?

阅读时长 5 分钟读完

WebSocket 是 HTML5 开始出现的协议,它在客户端和服务器之间建立全双工的通信连接,使得实时通信成为可能。在 Deno 中,我们可以通过 std/ws 模块来使用 WebSocket。

本文将会介绍如何在 Deno 中使用 WebSocket,包括服务器端和客户端的实现,还会展示一些示例代码。

服务器端实现

首先,我们需要创建一个 WebSocket 服务器。可以使用以下代码:

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

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

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

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

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

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

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

在上述代码中,我们创建了一个 HTTP 服务器和一个 WebSocket 服务器。可以看到,WebSocketServer 的构造函数需要传入端口号。在 WebSocket 服务器的主循环中,我们使用 ws.send() 发送消息给客户端,并使用 for await...of 消费客户端发来的消息。

客户端实现

接下来,我们需要创建一个 WebSocket 客户端。可以使用以下代码:

在上述代码中,我们使用 connectWebSocket() 方法连接到服务器上运行的 WebSocket 服务端。与服务器端类似,通过 for await...of 消费服务器发来的消息。

示例代码

下面是一个完整的示例,展示了如何使用 WebSocket 在服务器和客户端之间实现实时通信:

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

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

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

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

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

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

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

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

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

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

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

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

在上述代码中,我们创建了一个简单的聊天室。当客户端连接服务器时,服务器会发送一条欢迎消息给客户端。客户端可以向服务器发送消息,服务器会将消息广播给所有连接的客户端。

结论

WebSocket 是实现实时通信的重要协议之一,而 Deno 提供了方便的 std/ws 模块来支持 WebSocket。在本文中,我们介绍了如何在 Deno 中使用 WebSocket,在客户端和服务器端之间实现实时通信。希望这些知识可以对大家的学习和工作有所帮助。

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

纠错
反馈