网上各种golang的im聊天项目大致都差不多,b站视频有很多,但唯独有一个讲的很全面,但讲师讲的非常凌乱,知道发现gitee上有一个类似的im源码,才豁然开朗:ctrl/chat.go · 张慧君/Chat - Gitee.com
一、聊天模式架构核心示意图

二、im聊天模式
三种模式:
单机模式
udp分发模式
mq队列发布订阅模式
三、核心架构解释
1.首先需要明确的是 message、node 和 clientMap
message消息内容,包含用户相关信息,接收者id,消息类型等。
node 就是一个用户相关信息结构体(不是用户消息体),它包含当前用户的 socket连接、当前用户的接收消息通道

文章详细阐述了使用Golang构建IM聊天系统的核心架构,包括单机模式、UDP分发模式和MQ队列发布订阅模式。在单机模式中,服务端通过WebSocket与客户端交互,使用全局clientMap管理和分发消息。UDP分发则涉及消息放入队列并通过UDP广播。MQ模式下,消息通过消息队列进行分发。所有模式的关键在于服务端如何有效地接收和分发消息。
最低0.47元/天 解锁文章
2186

被折叠的 条评论
为什么被折叠?



