Netty+SpringBoot+FastDFS+Html5實現聊天App
github鏈接: https://github.com/ShimmerPig...
數據庫
用戶表
face_image爲用戶的頭像,需要保存小圖與大圖,qrcode爲該用戶對應的二維碼
朋友關係表
好友申請表
記錄發送好友請求申請的數據表
聊天記錄表
sign_flag表示消息的簽收狀態,爲0表示未簽收,爲1表示已簽收
項目結構
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 用戶手機端獲取未簽收的消息列表
測試效果
註冊與登錄
個人信息
更換頭像
添加好友