Netty+SpringBoot+FastDFS+Html5實現聊天App
github連接: https://github.com/ShimmerPig...前端
已將前端代碼上傳至github,修改app.js中的ip地址後便可使用。git
數據庫
用戶表
face_image爲用戶的頭像,須要保存小圖與大圖,qrcode爲該用戶對應的二維碼
github
朋友關係表
好友申請表
記錄發送好友請求申請的數據表
數據庫
聊天記錄表
sign_flag表示消息的簽收狀態,爲0表示未簽收,爲1表示已簽收
json
項目結構
utils包
FileUtils 主要提供了一些與文件相關的操做
IMoocJSONResult 是自定義的響應給前端的數據結構
JsonUtils 提供了一些關於json轉換的操做
MD5Utils 提供了對字符串進行md5加密的操做
QRCodeUtils 提供了一些關於二維碼的相關操做
FastDFSClient 提供了各類上傳文件以及刪除文件的操做
enums包
MsgActionEnum 發送消息的動做的枚舉,相似於消息的類型
MsgSignFlagEnum 消息簽收狀態的枚舉
OperatorFriendRequestTypeEnum 忽略或者經過好友請求的枚舉
SearchFriendsStatusEnum 添加好友前置狀態的枚舉
pojo包
增長了bo包與vo包,分別存放business object與value object / view object;
mapper包
增長了一個自定義的UsersMapperCustom,在其中自定義了查詢好友請求列表,查詢好友列表,以及批量簽收聊天消息的方法;
service包
提供以下方法:
queryUsernameIsExist 判斷用戶名是否存在
queryUserForLogin 查詢用戶是否存在
saveUser 用戶註冊
updateUserInfo 修改用戶記錄
preconditionSearchFriends 搜索朋友的前置條件
queryUserInfoByUsername 根據用戶名查詢用戶對象
sendFriendRequest 添加好友請求記錄,保存到數據庫
queryFriendRequestList 查詢好友請求
deleteFriendRequest 刪除好友請求記錄
passFriendRequest 經過好友請求
queryMyFriends 查詢好友列表
saveMsg 保存聊天消息到數據庫
updateMsgSigned 批量簽收消息
getUnReadMsgList 獲取未簽收消息列表
controller包
提供以下接口:
registOrLogin 用戶註冊/登陸
uploadFaceBase64 上傳用戶頭像
setNickname 設置用戶暱稱
searchUser 搜索好友
addFriendRequest 發送添加好友的請求
queryFriendRequests 發送添加好友的請求
operFriendRequest 接受方經過或者忽略朋友請求
myFriends 查詢個人好友列表
getUnReadMsgList 用戶手機端獲取未簽收的消息列表
測試效果
註冊與登陸
我的信息
更換頭像
添加好友
二維碼添加好友
接受好友請求後開始聊天