相关信息

应用前后端分离实现
后端:golang
前端:vue
框架:go-zero、Mint UI
功能清单:

  • 用户注册、登录
  • 用户搜索、添加好友、删除好友
  • 发送 / 接收文本消息(支持离线消息的接收)

几张功能时序图

1、添加好友

1、用户 A 请求 api 接口添加用户 B 为好友
2、api 接口处理成功后向 websocket 服务发送添加消息
3、websocket 服务收到消息后转发个用户 B(在线?发送:入离线消息队列)
4、用户 B 收到好友添加消息,点击同意或拒绝请求 api。
5、api 处理成功后向 websocket 服务发送消息
6、websocket 服务转发消息到用户 A 完成好友添加(在线?发送:入离线消息队列)

2、消息发送

3、离线消息处理

Tip:
1、所有的消息转发都会验证(在线?发送:入离线消息队列)。待用户下次登录上线时再发送。
2、所有消息都是本地缓存,数据库有保存,客户端没有调用接口获取。

部分效果图

最后附上体验地址:chat.wuyan94zl.cn
后端代码地址:github.com/wuyan94zl/IM

go-zero 单体应用最假实践 - chat相关推荐

  1. 02百万架构师核心技术设计实践

    本文包括:高可用设计.无状态化与冗余设计.负载均衡设计.幂等设计.分布式锁设计 一.互联网高可用设计: 1.高可用的定义: 高可用针对的对象是服务与架构,高可用是什么?它表示任何人.任何时间.任何地点 ...

  2. 5年以上的Java程序员,千万别忽略这一点

    做了 3~5 年编程开发,你已经积累了不少项目经验,扩宽了技术广度,也许已发力成为团队管理者.到了这个阶段,大家却常有这种感受:感觉自己卡在瓶颈进步缓慢,技术水平很难像早期一样实现大幅突破? 其实大家 ...

  3. 1 张图,拆解阿里 P8高级架构师必会技术栈!

    大家都知道,阿里P8高级技术专家,基本上是一线技术人能达到的最高职级,也是很多程序员追求的目标.达到年入百万的P8 Java高级架构师级别,不仅要具备优秀的编程能力和系统设计能力,在技术视野和业务洞察 ...

  4. 阿里 P8 Java高级架构师,都需要掌握哪些技术栈?

    大家都知道,阿里P8高级技术专家,基本上是一线技术人能达到的最高职级,也是很多程序员追求的目标.达到平均年入百万的P8 Java高级架构师级别,不仅要具备优秀的编程能力和系统设计能力,在技术视野和业务 ...

  5. 少走弯路,给3~5年程序员的唯一一条建议

    做了 3~5 年编程开发,你已经积累了不少项目经验,扩宽了技术广度,也许已发力成为团队管理者.到了这个阶段,大家却常有这种感受:感觉自己卡在瓶颈进步缓慢,技术水平很难像早期一样实现大幅突破? 其实大家 ...

  6. 做了几年Java开发,你必须重视这一点

    做了5年左右程序开发,你已经积累了不少项目经验,扩宽了技术广度,也许已发力成为团队管理者.到了这个阶段,大家却常有这种感受:感觉自己卡在瓶颈进步缓慢,技术水平很难像早期一样实现大幅突破? 其实大家往往 ...

  7. 互联网总体架构设计篇

    文章目录 序言 01 互联网发展三阶段 02 互联网架构演进之路 03 单体架构设计与实践 04 水平分层架构设计与实践 05 面向服务架构设计与实践 06 微服务架构设计与实践 07 服务网格架构设 ...

  8. 阿里java架构师+职级_阿里 P8 高级架构师年入100W+,到底什么水平?

    原标题:阿里 P8 高级架构师年入100W+,到底什么水平? 大家都知道,阿里P8高级技术专家,基本上是一线技术人能达到的最高职级,也是很多程序员追求的目标.达到年入百万的P8 Java高级架构师级别 ...

  9. 阿里 P8 高级架构师年入百万,到底什么水平?

    大家都知道,阿里P8高级技术专家,基本上是一线技术人能达到的最高职级,也是很多程序员追求的目标.达到年入百万的P8 Java高级架构师级别,不仅要具备优秀的编程能力和系统设计能力,在技术视野和业务洞察 ...

最新文章

  1. ASP.NET中Cookie的使用(实战教程)
  2. 使用 Electron 从协议处理器启动应用程序
  3. #翻译NO.4# --- Spring Integration Framework
  4. Android Lambda 表达式使用实例,-
  5. django-模型类的修改-外键
  6. 简述传统动画跟计算机动画的异同点,Flash动画设计与传统动画设计的特点比较研究...
  7. Java==与equals方法的区别
  8. 诺基亚100G光传输网络助力Jio泛印度4G网络大幅增长
  9. 为unigui程序搭建chrome手机浏览器(B4A)
  10. TFIDF之python实现
  11. 《特征值与特征向量》定义、意义及例子
  12. python docx_python-docx 入门
  13. [词性] 十五、介词 5 [ by ] [ during ] [ for ] [ from ]
  14. 二级域名指向同一ip的不同端口
  15. 小型OSPF路由网络的搭建
  16. Encoder和Decoder
  17. mysql%3e= %3c=某个时间_乐视网某站SQL注入3枚
  18. 个人电商项目(mxcmall)的环境配置
  19. NAS 详细搭建方案 - 安装Aria2
  20. 信贷风控二:一款线上信贷产品该有哪些数据

热门文章

  1. 电大计算机程序设计性考任务,国开电大专科《程序设计基础》形考任务1至4试题及答案.pdf...
  2. 软件工程毕业设计课题(87)微信小程序毕业设计PHP校园失物招领小程序系统设计与实现
  3. linux 脚本文件后缀,Shell 截取文件名和后缀
  4. 通过从代码层面分析Linux内核启动来探知操作系统的启动过程
  5. 【paper reading】Uncalibrated Photometric Stereo under Natural Illumination
  6. 华硕计算机主板接口,【华硕Z370评测】主板扩展接口的选择_华硕主板_主板评测-中关村在线...
  7. 【国君非银】TAMP研究之一:它的美国起源史
  8. ICML2020 文章目录及下载链接
  9. 【流行学习】局部保持投影(Locality Preserving Projections)
  10. LE和LPP基础知识