【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]

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章