实现逻辑:
A: 客户端通过发送命令/报文方式订阅某个事件(加入某个群 获取这个群的消息) 这样可以灵活增加订阅
B: 监听消息 当这个群有消息的时候可以获取相关信息通过当前用户管道发送给客户端
C:当客户端链接到服务器的时候查询数据库获取到当前改用户加入的群并订阅相关群消息
D:发布群消息可以通过WS管道发送报文或则通过API发送到Redis
1:订阅消息:
func (r * Redis) SubMessage(channel string) <-chan * redis.Message { sub := redisdb.Subscribe(channel) _, err := sub.Receive() if err != nil { fmt.Println(err) } ch := sub.Channel() return ch }
2:发布消息
//发布消息 func (r * Redis) Publish(channel string,msg string) error{ err := redisdb.Publish(channel,msg).Err() return err }