×

go websocket redis 实现群消息订阅发布

admin admin 发表于2022-12-30 10:47:35 浏览146 评论0

抢沙发发表评论

实现逻辑:


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
}