使用 Deno 中的 WebSocket 实现简单聊天室

WebSocket 是一种在客户端和服务器之间建立实时双向通信的技术。在前端开发中,我们经常使用 WebSocket 来实现聊天室、实时通知等功能。而 Deno 是一个安全的 JavaScript 和 TypeScript 运行时环境,它提供了 WebSocket API,可以方便地实现 WebSocket 通信。

在本文中,我们将介绍如何使用 Deno 中的 WebSocket API 实现一个简单的聊天室。

准备工作

在开始之前,我们需要先安装 Deno。可以在 Deno 官网 下载安装包进行安装。

安装完成后,我们可以创建一个新的文件夹,在其中创建两个文件:server.tsclient.html。其中,server.ts 用于实现服务器端代码,client.html 用于实现客户端代码。

实现服务器端代码

server.ts 中,我们需要先创建一个服务器并监听指定端口:

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

接下来,我们需要创建 WebSocket 服务器,并在收到客户端连接时创建 WebSocket 连接:

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

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

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

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

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

在上面的代码中,我们使用 acceptWebSocket 函数创建 WebSocket 连接,并在 handleWebSocket 函数中处理收到的消息。当收到客户端发送的消息时,我们将消息原封不动地发送回去。

实现客户端代码

client.html 中,我们需要创建 WebSocket 连接并发送消息:

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

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

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

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

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

在上面的代码中,我们首先创建了一个 WebSocket 连接,然后监听 openmessage 事件。当连接成功时,我们在控制台输出一条消息。当收到服务器发送的消息时,我们创建一个新的 li 元素,并将消息添加到 ul 元素中。最后,我们定义了一个 sendMessage 函数,用于向服务器发送消息。

运行程序

在准备工作完成后,我们可以在终端中执行以下命令启动服务器:

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

然后,在浏览器中打开 client.html 文件,即可看到一个简单的聊天室界面。在输入框中输入消息并点击发送按钮,即可将消息发送给服务器,并在聊天室中显示出来。

总结

在本文中,我们介绍了如何使用 Deno 中的 WebSocket API 实现一个简单的聊天室。通过这个例子,我们可以学习到如何创建 WebSocket 服务器和客户端,以及如何处理 WebSocket 连接和消息。希望本文能对大家有所帮助。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65e5469b1886fbafa40fee95