如何使用 Express.js 创建 Websocket 服务器

阅读时长 5 分钟读完

介绍

Websocket 是一种在客户端和服务器之间建立实时双向通信的协议。与 HTTP 不同的是,它可以保持长连接并实现数据的实时推送。在前端开发中,Websocket 被广泛应用于聊天室、多人协作和在线游戏等场景。

Express.js 是一款知名的 Node.js Web 框架,提供了处理 HTTP 请求和响应的强大功能。本文将介绍如何使用 Express.js 创建 Websocket 服务器来实现实时通信。

前置知识

本文假设你已经掌握了以下知识:

  • Node.js 基础知识
  • Express.js 基础知识
  • Websocket 协议基础知识

安装依赖

为了使用 Express.js 创建 Websocket 服务器,我们需要先安装一些依赖。

其中,express 是 Express.js 框架,用于处理 HTTP 请求和响应;ws 是 Node.js 的一个 Websocket 实现,用于处理 WebSocket 协议。

创建 Express.js 应用

下面是使用 Express.js 创建 Websocket 服务器的示例代码:

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

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

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

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

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

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

其中,app 是 Express.js 应用;server 是使用该应用创建的 HTTP 服务器;wss 是使用 server 创建的 WebSocket 服务器。

wss.on('connection', ...) 函数中,我们监听了新连接的事件,当有新的连接接入时,该函数将被调用。我们在该函数中监听了消息事件,并在收到消息时打印该消息并将其原封不动地发送回去,实现了一个简单的回射服务器。

客户端测试

为了测试我们的 WebSocket 服务器,我们可以使用浏览器内置的 WebSocket 实现来发送和接收消息。下面是示例代码:

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

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

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

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

在浏览器中打开该页面,我们可以看到一个输入框和一个按钮,以及一个用于显示接收消息的列表。当我们在输入框中输入一条消息并点击发送按钮时,该消息会被发送到 WebSocket 服务器,并在服务器端被打印和原封不动地返回。我们可以在客户端的页面中看到收到的消息。

总结

本文介绍了如何使用 Express.js 创建 Websocket 服务器,以实现实时通信。我们使用了 Express.js 应用和 WebSocket 服务器,并利用浏览器内置的 WebSocket 实现进行了测试。希望本文能对你有所帮助。

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

纠错
反馈