Vue.js+Express.js 实战:开发一个简单的在线聊天室应用

阅读时长 8 分钟读完

在线聊天室应用,早已不是一个新鲜的东西了。在当今社交网络蓬勃发展的时期,人们已经很容易地习惯了通过互联网和智能终端进行在线聊天。现在,我们将使用 Vue.js 和 Express.js 框架来实现一个简单的在线聊天应用。

技术栈

在本次项目中,我们使用了以下技术:

  • Vue.js:一个便于构建用户界面的 JavaScript 框架。
  • Express.js:一个基于 Node.js 平台的 Web 开发框架。
  • Socket.io:一个基于 WebSocket 的实时通信引擎。

开始前的准备

在开始之前,我们需要先安装以下软件:

  • Node.js 和 npm:开发环境需要。
  • Vue CLI:Vue.js 的脚手架工具。

完成安装后,我们可以开始构建我们的聊天室应用。

Vue.js 部分

首先,我们需要使用 Vue CLI 创建一个新的 Vue.js 项目:

接着,在 src 目录下创建以下文件:

  • Chat.vue:聊天室界面组件。
  • Login.vue:登录界面组件。
  • main.js:应用入口文件。

Login.vue

Login.vue 文件中,我们将创建一个简单的登录表单,用于输入用户的昵称:

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

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

在上面的代码中,我们定义了一个用于输入昵称的表单,同时也定义了一个登录方法。

Chat.vue

Chat.vue 文件中,我们将创建一个简单的聊天室界面,用于显示聊天消息和输入新的消息。

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

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

在上面的代码中,我们定义了一个聊天室界面,包括用于显示消息和用于输入新消息的表单。

main.js

main.js 文件中,我们将创建一个 Vue 实例,用于整个应用的管理。

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

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

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

在上面的代码中,我们定义了一个应用实例,并把 LoginChat 组件注册为全局组件。我们也定义了一些方法用于管理整个应用实例并通过 Socket.io 进行实时通信。

Express.js 部分

上面我们已经完成了前端部分的开发,现在我们来进行服务端的开发。

首先,我们需要在项目目录中创建一个新的目录,用于存放服务端代码。

接着,在服务端目录中执行以下命令以安装 expresssocket.io

server.js

在服务端目录中,我们创建一个新的文件 server.js,用于启动服务和处理请求。

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

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

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

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

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

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

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

在上面的代码中,我们使用 express 框架创建一个 http 服务器,并使用 socket.io 创建一个 WebSocket 连接。我们使用 io.on() 方法监听客户端连接,并使用 socket.on() 方法监听客户端发送的消息。

运行应用

现在我们已经完成了服务端和客户端的代码编写,接下来我们来运行应用。我们需要在两个不同的终端分别运行以下命令:

完成上面的操作后,我们就可以在浏览器中访问 http://localhost:8080(默认端口号为 8080)来启动聊天室应用了。

总结

通过本次实战,我们学习了如何使用 Vue.js 和 Express.js 框架构建一个简单的在线聊天室应用。我们已经实现了以下功能:

  • 登录界面:用于输入用户昵称。
  • 聊天室界面:用于显示聊天消息和输入新消息。
  • 实时通信:使用 socket.io 来实现客户端和服务端的实时通信。

在这个项目的基础上,你可以继续增加更多的功能,比如支持聊天室分组、消息撤回等等,让它变得更加完善。

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

纠错
反馈