Netty+SpringBoot+FastDFS+Html5實(shí)現(xiàn)聊天App
github鏈接:?https://github.com/ShimmerPig/PigChat
數(shù)據(jù)庫
用戶表
face_image為用戶的頭像白翻,需要保存小圖與大圖,qrcode為該用戶對應(yīng)的二維碼
朋友關(guān)系表
好友申請表
記錄發(fā)送好友請求申請的數(shù)據(jù)表
聊天記錄表
sign_flag表示消息的簽收狀態(tài),為0表示未簽收,為1表示已簽收
項(xiàng)目結(jié)構(gòu)
utils包
1)FileUtils 主要提供了一些與文件相關(guān)的操作
2)IMoocJSONResult 是自定義的響應(yīng)給前端的數(shù)據(jù)結(jié)構(gòu)
3)JsonUtils 提供了一些關(guān)于json轉(zhuǎn)換的操作
4)MD5Utils 提供了對字符串進(jìn)行md5加密的操作
5)QRCodeUtils? 提供了一些關(guān)于二維碼的相關(guān)操作
6)FastDFSClient 提供了各種上傳文件以及刪除文件的操作
enums包
1)MsgActionEnum 發(fā)送消息的動(dòng)作的枚舉欢顷,類似于消息的類型
2)MsgSignFlagEnum 消息簽收狀態(tài)的枚舉
3)OperatorFriendRequestTypeEnum 忽略或者通過好友請求的枚舉
4)SearchFriendsStatusEnum 添加好友前置狀態(tài)的枚舉
pojo包
增加了bo包與vo包滓彰,分別存放business object與value object / view object稳捆;
mapper包
增加了一個(gè)自定義的UsersMapperCustom嗤无,在其中自定義了查詢好友請求列表猴贰,查詢好友列表对雪,以及批量簽收聊天消息的方法;
service包
提供如下方法:
1)queryUsernameIsExist 判斷用戶名是否存在
2)queryUserForLogin 查詢用戶是否存在
3)saveUser 用戶注冊
4)updateUserInfo 修改用戶記錄
5)preconditionSearchFriends 搜索朋友的前置條件
6)queryUserInfoByUsername 根據(jù)用戶名查詢用戶對象
7)sendFriendRequest 添加好友請求記錄糟趾,保存到數(shù)據(jù)庫
8)queryFriendRequestList 查詢好友請求
9)deleteFriendRequest 刪除好友請求記錄
10)passFriendRequest 通過好友請求
11)queryMyFriends 查詢好友列表
12)saveMsg 保存聊天消息到數(shù)據(jù)庫
13)updateMsgSigned 批量簽收消息
14)getUnReadMsgList 獲取未簽收消息列表
controller包
提供如下接口:
1)registOrLogin 用戶注冊/登錄
2)uploadFaceBase64 上傳用戶頭像
3)setNickname 設(shè)置用戶昵稱
4)searchUser 搜索好友
5)addFriendRequest 發(fā)送添加好友的請求
6)queryFriendRequests 發(fā)送添加好友的請求
7)operFriendRequest 接受方通過或者忽略朋友請求
8)myFriends 查詢我的好友列表
9)getUnReadMsgList 用戶手機(jī)端獲取未簽收的消息列表
測試效果
注冊與登錄
個(gè)人信息
更換頭像
添加好友
二維碼添加好友
接受好友請求后開始聊天