Deno 中的 WebSockets 实现

阅读时长 11 分钟读完

在 Deno 中,WebSocket 是一项强大的技术,它带来了实时通信和事件触发的可能性。通过 WebSocket,你可以在服务器和客户端之间建立一个实时的、双向的通信管道。本文将介绍 Deno 中的 WebSocket 实现,包括如何创建和连接 WebSocket、如何发送和接收消息以及如何利用 WebSocket 构建实时通信应用程序。

WebSocket 简介

WebSocket 是 HTML5 中的一种新协议,它可以实现浏览器与服务器之间的实时通信。在传统的 HTTP 协议中,客户端向服务器发送请求后,服务器才能够向客户端发送响应。而 WebSocket 协议则打破了这个限制,它可以在客户端和服务器之间建立一个双向的通信管道,实时地传输数据。

在 WebSocket 中,客户端和服务器之间建立一个 WebSocket 连接,连接建立后,客户端和服务器就可以通过 WebSocket 连接相互发送消息。WebSocket 采用基于事件的编程模型,它可以触发 onopen、onmessage、onerror 和 onclose 四种事件,分别表示 WebSocket 连接已建立、接收到消息、发生错误和连接已关闭。

在 Deno 中创建和连接 WebSocket

在 Deno 中,使用 WebSocket API 可以非常方便地创建和连接 WebSocket。可以使用以下命令将 Deno 安装在本地:

安装成功后,可以创建一个 Deno 项目,并创建一个 main.ts 文件,用于编写 WebSocket 应用程序。以下是在 Deno 中创建 WebSocket 的示例代码:

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

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

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

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

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

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

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

上面的代码创建了一个 HTTP 服务器和一个 WebSocket 服务器。当客户端访问 http://localhost:8080/ 时,返回一个包含 JavaScript 代码的 HTML 页面,该代码将建立一个 WebSocket 连接。当客户端与 WebSocket 服务器建立连接时,WebSocket 服务器将发送一条消息,客户端可以在 console 中看到这条消息。

如何发送和接收消息

当 WebSocket 连接建立之后,可以通过 WebSocket.send() 方法向服务器发送消息,以下是一个简单的发送消息的示例代码:

对于接收到的消息,可以通过 WebSocket.onmessage 事件进行处理,以下是一个简单的接收消息的示例代码:

WebSocket 的应用

使用 WebSocket,可以构建出真正的实时通信应用程序。以下是一个简单的聊天室应用程序的示例代码:

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

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

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

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

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

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

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

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

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

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

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

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

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

上述代码创建了一个聊天室应用程序,客户端可以在 WebSocket 连接上发送消息,这些消息可以被广播到其他所有客户端。如果你在不同的浏览器中打开 http://localhost:8080/,你可以看到这些浏览器之间可以实时通信。这个应用程序非常简单,不能处理多个房间、用户身份验证等复杂的应用程序逻辑,但是已经可以满足基本的实时聊天应用程序的需求。

总结

WebSocket 是一个非常强大的技术,可以实现实时通信和事件触发。在 Deno 中,WebSocket 可以非常方便地使用,我们可以使用 Deno 提供的 WebSocket API 构建出真正的实时通信应用程序。本文介绍了在 Deno 中创建和连接 WebSocket、如何发送和接收消息以及如何利用 WebSocket 构建实时通信应用程序。通过了解 WebSocket,你可以掌握实时通信技术,并构建出更加强大的实时通信应用程序。

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

纠错
反馈