如何在 Deno 中使用 WebSockets

阅读时长 7 分钟读完

介绍

Deno 是一个类似 Node.js 的运行时环境,但比 Node.js 更加安全和高效。WebSockets 是一种基于 TCP 的协议,用于实现双向通信。在 Deno 中使用 WebSockets 可以方便地实现实时通信。

本文将介绍如何使用 Deno 实现 WebSockets。

依赖

使用 Deno 实现 WebSockets 需要以下依赖:

  • Deno 运行时环境
  • WebSocket 标准库模块

示例代码

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

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

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

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

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

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

这段代码实现了一个简单的 WebSocket 服务器,监听本地 8080 端口,接受客户端的连接,收到消息后原封不动地发送回去。客户端的连接可以使用任何支持 WebSocket 的客户端。

解释

服务器代码

这里导入了 Deno 的 HTTP 服务器和 WebSocket 相关的标准库模块。

创建一个 HTTP 服务器,监听本地 8080 端口,并输出日志。

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

开始监听请求,如果是 WebSocket 连接,则调用 acceptWebSocket 函数处理连接。

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

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

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

处理 WebSocket 连接,输出日志,然后开始循环等待客户端发送消息。收到消息后根据消息类型进行处理。

客户端代码

使用 WebSocket 协议的客户端可以是任意的支持 WebSocket 的客户端。以浏览器为例:

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

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

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

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

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

这段 HTML 代码创建了一个 WebSocket 连接,连接到本地 8080 端口的 WebSocket 服务器。连接建立后输出日志,并等待服务器发送消息。收到消息后更新页面上的消息框。如果连接关闭,则输出日志。

总结

本文介绍了在 Deno 中使用 WebSockets 的方法,并提供了示例代码。通过本文,你可以了解到 Deno 和 WebSockets 的基本概念和用法,以及如何使用它们在 Deno 中实现实时通信。

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

纠错
反馈