【0-4】从零开始的web即时聊天应用的开发

web即时聊天系统的实现

第【3】页

项目需求分析

现在才来进行分析为了大概对需要的知识进行预测,明确项目的大略内容,毕竟项目需求是我自己提出来的,具体的需求在我内心已经知晓。进行需求分析并罗列,是为了明确目标,避免在做的过程中遗漏和将需求做大的情况。

首先,本项目不是单纯的类似qq的即时通讯,而是社交网站的聊天功能。

项目功能

  1. 注册、登录功能
  2. 私聊功能,可以通过添加好友或者关注的用户进行私聊,聊天记录保存
  3. 公屏聊天功能,聊天记录不保存
  4. 群聊、粉丝支援团群聊天,粉丝群聊成员名单,通过关注和同意加入可参与群聊
  5. 支持图片发送,表情
  6. 消息推送,如果用户在离线收到消息,会在登录系统时推送给用户

这是本项目最终实现的功能的要求,也许做到最后会有所更不同,不过系统会迭代的,有机会再说吧。

项目准备

根据现有javaEE知识(我的学校课程只教授了javaEE相关的知识),划分一下职能,明确需要完成的任务

  • 数据库
  1. 数据库的设计与创建
  2. 数据库
  • 服务器
  1. 数据库访问对象(DAO)
  2. 业务逻辑处理
  3. 控制器
  4. 通讯服务服务器端模块
  • 客户端
  1. 前端交互界面(UI)
  2. 逻辑处理
  3. 交互组件
  4. 通讯服务客户端模块

本系统前后端分离,数据交互使用JSON为载体(json独立于平台,前台JavaScript就能直接处理数据了,也不用写解释器,比XML方便,后台语言都对json支持)

因为我目前为止也不是清楚具体的流程是怎样的,摸索着做着先,做出来的东西估计也得修修改改才可能接近需求,为了较少踩坑的次数,故才有这次的项目设计记录。按照既定思维,既然对需求有了大致的了解,那就是从数据库开始入手,具体会在实现篇记录。

传输数据格式

//上一篇的前端发送的通讯数据格式大致如下
{
    "username":"user",        //消息发送者
    "to":"xxxx",              //消息需要推送对象
    "msg":"message",          //消息发送内容
    "type":2,                 //消息类型
    "time":"xxxx-xxxx-xxxx-xxxx"   //发送时间
}

//type类型以后再进行详细规定

项目需要的框架

提及的都可以来了解一下,毕竟真正做起来需要用到什么技术也很难预测。

前端

我比较喜欢自己写css3代码来进行UI设计,boostrap不是很符合我的口味,使用原生JavaScript结合HTML5、CSS3编写组件。

不过,使用框架就比较省事,推荐使用boostrap,boostrap中文网:https://www.bootcss.com/,boostrap教程:https://www.runoob.com/bootstrap/bootstrap-tutorial.html

而Node.js,Vue,React、Angular 2 等,这些前端框架有兴趣可以看看,如果走前端路线的,这些框架是必学一个的。

后端

servlet加jsp是基础的了,不过现在一般不用这个设计了,不仅麻烦而且工程量巨大,使用框架就很好的解决了一些坑

例如:

依赖管理

数据库

  • 采用结构化数据语言SQL语句,搭载MySQL数据库管理系统
  • mongDB非结构化数据库,可能会使用他进行聊天记录数据的存储
  • Redis非结构化数据库,用来辅助数据存储

数据交互格式

  • json

开发工具与运行环境

  • MyEclipse:我使用MyEclipse进行后端开发的
  • sublime:我使用sublime文本编辑器编写HTML、css3、JavaScript
  • MySQL数据库管理系统、Navicat Premium可视化界面
  • 前端运行环境web服务器:Apache或者Nginx
  • 后端运行环境应用服务器:weblogic、Tomcat等等

搭建运行环境:嫌麻烦的话可以使用集成环境phpstudy,安装包下载:https://www.xp.cn/

因为我们需要使用基于java语言的,所以需要用到应用服务器weblogic或者TomCat

至于Web服务器和应用服务器的区别,可自行百度

[2019-10-27]

发布了12 篇原创文章 · 获赞 1 · 访问量 3728

猜你喜欢

转载自blog.csdn.net/ET1131429439/article/details/102762770
今日推荐