从零开始搭建一个聊天室应用:基于 Serverless 框架

阅读时长 10 分钟读完

前言

随着互联网的发展,实时通讯应用越来越受欢迎。而基于 Serverless 框架,可以简化服务器的开发、部署与维护,是搭建实时通讯应用的最佳选择。本文将介绍如何从零开始搭建一个聊天室应用,并通过 Serverless 实现。

技术栈

本文所使用的技术栈包括:

  • Vue.js:前端页面开发框架。
  • Serverless Framework:Serverless 开发框架。
  • Tencent Cloud CloudBase:Serverless 云平台。
  • WebSocket:实现实时通讯。

前端页面开发

在进行后端开发之前,我们需要先编写一个前端页面来方便用户进行聊天。本文采用 Vue.js 框架来开发前端页面。

初始化项目

首先,我们需要创建一个 Vue 项目。在命令行中执行以下命令:

接着,我们需要安装 WebSocket:

编写页面

App.vue 中添加以下代码:

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

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

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

此时,聊天室应用的前端页面已经完成。

后端服务开发

接下来,我们将介绍后端服务的开发。我们采用 Serverless Framework 来进行开发,它是一种全新的云计算模式,将大大简化我们的开发、部署与维护流程。

安装 Serverless Framework

在命令行中执行以下命令,即可安装 Serverless Framework:

初始化项目

在命令行中执行以下命令,即可初始化一个 Serverless 框架项目:

开发 Serverless 服务

安装依赖

chat-server 目录中执行以下命令,安装需要的依赖:

编写服务

服务代码主要分为两个部分:聊天室服务和 Websocket 服务。

聊天室服务

serverless.yml 中添加以下内容:

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

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

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

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

然后,我们创建一个 app.js 文件来实现服务代码:

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

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

-------------- - -
  ------ ----- -- -- -
    ------ -------------------- -----------
  --
  -------- ----- ------- -- -
    ------ -------------------------
  --
  -------- ----- -- -- -
    ------ ---------------------- -----------
  --
--
WebSocket 服务

src 目录下创建 websocket.js 文件,添加以下内容:

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

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

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

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

部署服务

在命令行中执行以下命令,即可进行 Serverless 服务的部署:

维护聊天记录

为了维护聊天记录,我们需要创建一个存储服务,并将历史消息存入数据库中。

创建存储服务

在腾讯云中创建一个云数据库(TencentDB),并将该数据库信息添加到 serverless.ymlresources 中,以便访问数据库中存储的聊天记录。

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

维护聊天记录

我们修改 websocket.js 中的 message 函数,将消息存储到数据库中:

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

随后,我们修改 app.js 中的 history 函数,读取聊天记录:

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

至此,我们的聊天室应用已经可以正常运行了!

总结

本文通过 Serverless 开发框架,介绍了如何从零开始搭建一个聊天室应用,并介绍了相关技术和注意事项。Serverless 服务的部署和维护过程非常简单,可为我们的开发流程带来极大的便利。

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

纠错
反馈