go-zero 单体应用最佳实践之chat(聊天)增加群组

相关信息

应用前后端分离实现
后端: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 协议》,转载必须注明作者和本文链接
没有造飞机的格局,怎么能拧得好螺丝。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!