golang im聊天核心结构(websocket)

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

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

一、聊天模式架构核心示意图

 

 

二、im聊天模式

        三种模式:

                单机模式

                udp分发模式

                mq队列发布订阅模式

三、核心架构解释

 1.首先需要明确的是 message、node  和  clientMap

        message消息内容,包含用户相关信息,接收者id,消息类型等。

         node 就是一个用户相关信息结构体(不是用户消息体),它包含当前用户的 socket连接、当前用户的接收消息通道

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值