go-zero 單體應用最佳實踐之chat(聊天)增加群組

wuyan94zl發表於2022-05-05

相關資訊

應用前後端分離實現
後端:golang
前端:vue
框架:go-zero、Mint UI
功能清單:

  • 使用者註冊、登入
  • 使用者搜尋、新增好友、刪除好友
  • 群組聊天功能(群組建立、申請入群,退出群組,解散群組等)
  • 傳送/接收文字訊息(支援離線訊息的接收)

幾張功能時序圖

1、新增好友

go-zero 單體應用最假實踐之chat(聊天)

1、使用者A請求api介面新增使用者B為好友
2、api介面處理成功後向websocket服務傳送新增訊息
3、websocket服務收到訊息後轉發個使用者B(線上 ? 傳送 : 入離線訊息佇列)
4、使用者B收到好友新增訊息,點選同意或拒絕請求api。
5、api處理成功後向websocket服務傳送訊息
6、websocket服務轉發訊息到使用者A 完成好友新增(線上 ? 傳送 : 入離線訊息佇列)

2、訊息傳送

go-zero 單體應用最假實踐之chat(聊天)

3、離線訊息處理

go-zero 單體應用最假實踐之chat(聊天)

Tip:
1、所有的訊息轉發都會驗證(線上 ? 傳送 : 入離線訊息佇列)。待使用者下次登入上線時再傳送。
2、所有訊息都是本地快取,資料庫有儲存,客戶端沒有呼叫介面獲取。

部分效果圖

go-zero 單體應用最假實踐之chat(聊天)go-zero 單體應用最假實踐之chat(聊天)go-zero 單體應用最假實踐之chat(聊天)go-zero 單體應用最假實踐之chat(聊天)go-zero 單體應用最假實踐之chat(聊天)go-zero 單體應用最假實踐之chat(聊天)

最後附上體驗地址:chat.wuyan94zl.cn
後端程式碼地址:github.com/wuyan94zl/IM

本作品採用《CC 協議》,轉載必須註明作者和本文連結
沒有造飛機的格局,怎麼能擰得好螺絲。

相關文章