使用 Deno 实现简单的 WebSocket 服务器

前言

WebSocket 是一种在 Web 应用程序中实现双向通信的协议。它允许客户端和服务器之间进行实时通信,而无需使用 HTTP 的轮询技术。在前端开发中,WebSocket 已成为实现实时通信的首选方案。本文将介绍如何使用 Deno 实现简单的 WebSocket 服务器。

什么是 Deno?

Deno 是一个现代化的 JavaScript 和 TypeScript 运行时环境,它使用 V8 引擎和 Rust 语言编写。Deno 提供了一个安全的默认设置,可以帮助开发人员编写安全的 JavaScript 和 TypeScript 代码。与 Node.js 不同,Deno 不需要使用 npm 包管理器,它可以直接从 URL 导入模块。

实现 WebSocket 服务器

在本文中,我们将使用 Deno 实现简单的 WebSocket 服务器。我们将使用标准的 WebSocket API,以及 Deno 的标准库中的 WebSocket 模块。我们将创建一个简单的聊天室应用程序,允许多个客户端之间进行实时通信。

安装 Deno

首先,我们需要安装 Deno 运行时环境。您可以在 Deno 的官方网站上找到安装说明:https://deno.land/#installation

创建服务器

我们将从创建 WebSocket 服务器开始。在 Deno 中,我们可以使用 WebSocket 模块来创建 WebSocket 服务器。以下是创建 WebSocket 服务器的代码示例:

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

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

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

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

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

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

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

在上面的代码中,我们使用 Deno 的标准库中的 serve 方法创建了一个 HTTP 服务器。然后,我们使用 acceptWebSocket 方法接受 WebSocket 连接。一旦连接建立,我们就可以使用 ws 对象与客户端进行通信。

在上面的代码中,我们使用 for await 循环来监听 WebSocket 事件。当收到文本消息时,我们向所有连接的客户端广播消息。当收到二进制消息时,我们只是简单地打印消息。当收到 ping 消息时,我们只是简单地打印 ping 消息。当收到 close 消息时,我们只是简单地打印 close 消息。

创建客户端

现在,我们已经创建了 WebSocket 服务器,我们需要创建一个客户端来连接服务器。以下是创建 WebSocket 客户端的代码示例:

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

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

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

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

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

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

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

在上面的代码中,我们使用 new WebSocket 构造函数创建了一个 WebSocket 客户端。我们将客户端连接到服务器的 URL。当 WebSocket 连接建立时,我们将在控制台中打印消息。当我们收到文本消息时,我们将在页面上显示消息。当用户单击“发送”按钮时,我们将文本框中的消息发送到服务器。

运行代码

现在,我们已经创建了 WebSocket 服务器和客户端,我们可以运行代码并测试它们。首先,我们需要在终端中运行 WebSocket 服务器:

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

然后,我们需要在浏览器中打开客户端文件(例如,index.html 文件)。在控制台中,我们应该看到一条消息,表示 WebSocket 连接已建立。我们可以在文本框中输入消息,并单击“发送”按钮发送消息。发送的消息将立即在所有连接的客户端之间进行广播。

总结

在本文中,我们介绍了如何使用 Deno 实现简单的 WebSocket 服务器。我们创建了一个简单的聊天室应用程序,允许多个客户端之间进行实时通信。我们还介绍了如何创建 WebSocket 客户端,并在页面上显示消息。Deno 提供了一种现代化的 JavaScript 和 TypeScript 运行时环境,可以帮助开发人员编写安全的 JavaScript 和 TypeScript 代码。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/658e58eaeb4cecbf2d423f18


猜你喜欢

相关推荐

    暂无文章