Deno 中使用 WebSocket 实现即时通讯

阅读时长 5 分钟读完

WebSocket 是一项用于在 Web 应用程序中进行双向通信的协议,它是实现实时通信最好的技术之一。Deno 是一款现代的 JavaScript 和 TypeScript 运行环境,它通过直接链接到 V8 引擎来执行 JavaScript 代码,同时也提供了开箱即用的模块、安全性、可扩展性等优点。

在本文中,我们将学习如何使用 Deno 中的 WebSocket 模块来实现即时通讯,并且通过示例代码来指导读者从零开始构建 WebSocket 服务器和客户端。

1. 安装 Deno

在开始学习之前,确保你已经安装了 Deno。你可以前往 Deno 的官方网站 下载并安装 Deno。

2. 创建 WebSocket 服务器

在 Deno 中使用 WebSocket 来创建服务器非常简单,我们只需要使用 WebSocket 模块的 listen 方法来监听客户端连接即可。

以下是一个简单的 WebSocket 服务器示例代码:

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

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

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

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

在这个示例中,我们首先创建一个 HTTP 服务器并监听 8080 端口,随后使用 WebSocket.accept 方法来接收客户端的连接。接下来使用 for...await 循环来实时监听客户端发来的消息,并进行处理。

当接收到文本消息时,我们会在服务器端输出消息内容,并通过 sock.send 方法将该消息发回客户端;当接收到二进制消息时,我们同样会输出消息内容,并将消息发回客户端;当客户端断开连接时,我们会输出关闭事件的信息。

在启动该示例代码之后,使用 WebSocket 客户端连接 http://localhost:8080,你将看到如下输出:

这说明你的 WebSocket 服务器已经成功创建并接受了客户端连接。接下来,你可以进行双向通讯了。

3. 创建 WebSocket 客户端

在 Deno 中,我们同样可以使用 WebSocket 来创建客户端。以下是一个简单的 WebSocket 客户端示例代码:

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

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

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

在这个示例中,我们首先通过 new WebSocket 方法来创建一个 WebSocket 实例并连接到服务器端;当连接成功后,我们通过 socket.send 方法发送一个消息给服务器端。接下来,我们使用 socket.onmessage 方法来监听服务器端返回的消息,并在控制台输出该消息。当连接被关闭时,我们可以使用 socket.onclose 方法进行相应的处理。

4. 总结

在本文中,我们学习了如何使用 Deno 中的 WebSocket 模块来实现即时通讯,包括如何创建 WebSocket 服务器和客户端。WebSocket 的消息体可以是文本、二进制等,而且 WebSocket 可以进行双向通讯。WebSocket 在实现实时通讯时非常方便,同时也是现代 Web 应用程序中不可或缺的技术之一,希望本文对读者在实践 WebSocket 技术时提供一些帮助。

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

纠错
反馈