Deno 中使用 WebSocket 完成一个简单的聊天应用

阅读时长 6 分钟读完

WebSocket 是一种用于在 Web 应用程序中进行双向通信的协议。它允许服务器向客户端推送数据,而不需要客户端发起请求。在前端开发中,我们经常使用 WebSocket 来构建实时应用程序,例如聊天应用程序等。在本文中,我们将介绍如何在 Deno 中使用 WebSocket 完成一个简单的聊天应用程序。

准备工作

在开始之前,我们需要安装 Deno 运行时环境。可以通过以下命令在命令行中安装 Deno:

安装完成后,我们可以在命令行中输入 deno 命令来验证安装是否成功:

接下来,我们需要创建一个新的 Deno 项目。可以通过以下命令在命令行中创建一个新的 Deno 项目:

实现 WebSocket 服务器

server.ts 文件中,我们需要实现一个 WebSocket 服务器来接收和处理客户端的连接请求。可以使用 Deno 的标准库中的 serve() 函数来创建一个 HTTP 服务器,并使用 WebSocket 模块来处理 WebSocket 连接请求。以下是一个简单的 WebSocket 服务器实现:

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

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

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

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

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

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

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

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

在上面的代码中,我们首先创建了一个 HTTP 服务器,并将其绑定到本地的 8000 端口。然后,我们使用 acceptWebSocket() 函数来处理客户端的 WebSocket 连接请求。在连接建立后,我们可以通过 for await (const message of ws) 循环来接收客户端发送的消息,并使用 await ws.send() 函数将消息发送回客户端。

实现聊天应用

现在我们已经有了一个 WebSocket 服务器,接下来我们需要实现一个简单的聊天应用程序。首先,我们需要在客户端中创建一个 WebSocket 连接,并在连接建立后发送一个欢迎消息。以下是一个简单的客户端实现:

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

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

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

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

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

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

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

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

在上面的代码中,我们首先创建了一个 WebSocket 连接,并在连接建立后发送一个欢迎消息。然后,我们通过 socket.onmessage() 函数来接收来自服务器的消息,并将其显示在页面上。最后,我们创建了一个文本输入框和一个发送按钮,并在按钮被点击时将输入框中的文本发送到服务器。

运行聊天应用

现在我们已经完成了聊天应用程序的实现,接下来我们可以通过以下命令在命令行中启动 WebSocket 服务器:

然后,我们可以在浏览器中打开 index.html 文件,并在页面上输入一些文本并点击发送按钮。我们应该能够在控制台中看到来自服务器的消息,并在页面上看到发送的消息被显示出来。

总结

在本文中,我们介绍了如何在 Deno 中使用 WebSocket 完成一个简单的聊天应用程序。我们首先实现了一个 WebSocket 服务器来接收和处理客户端的连接请求,然后在客户端中创建了一个 WebSocket 连接来发送和接收消息。通过本文的学习,我们可以更深入地了解 WebSocket 的工作原理,并掌握如何在 Deno 中使用 WebSocket 构建实时应用程序。

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

纠错
反馈