一、 原理|思路
分析群id,找到加了这个群的用户,把消息发送过去 方案一、 map 优势是锁的频次低 劣势是要轮训全部map
type Node struct {
Conn *websocket.Conn
//并行转串行,
DataQueue chan []byte
GroupSets set.Interface
}
//映射关系表
var clientMap map[int64]*Node = make(map[int64]*Node,0)
方案二、 map<群id> 优势是找用户ID非常快 劣势是发送信息时需要根据userid获取node,锁的频次太高
type Node struct {
Conn *websocket.Conn
//并行转串行,
DataQueue chan []byte
}
//映射关系表
var clientMap map[int64]*Node = make(map[int64]*Node,0)
var comMap map[int64]set.Interface= make(map[int64]set.Interface,0)
二、 需要处理的问题
1、当用户接入的时候初始化groupset
2、当用户加入群的时候刷新groupset
3、完成信息分发
三、 需要处理的问题
1、还需实现建群,加群的业务逻辑
启动进行测试创建群聊,加群,发送群聊信息即可