drau89457 2019-05-11 04:13
浏览 295

有没有办法广播到Redis中的每个频道?

I am trying to broadcast the message to channel in redis, but every user have they'r own channel with their user_id.

the way i think can be use is get all active channel and then publish it one by one. because what i know redis can't publish if diferent channel.

but the problem is, in lib go-redis i am using when the user subribe and check the redis with command PUBSUB CAHNNELS there is no channel result. i read on documentation the subribe function not gonna actived thhe channel immidietly. so how can i get the subribe channel ?

is there any solution to solve this ? i am using golang-redis https://godoc.org/github.com/go-redis/redis

  • 写回答

1条回答 默认 最新

  • dongxi5423 2019-05-11 05:07
    关注

    Subscribe each connection to the per user channel and and a channel for broadcasts. To send to all users, publish to the broadcast channel. The subscriber code will look something like this with the go-redis client:

    sub := client.Subscribe(userChannel, broadcastChannel)
    defer sub.Close()
    for {
       m, err := sub.ReceiveMessage()
       ... do something with m
    }
    

    where userChannel and broadcastChannel are the names of Redis channels. Use code like this to broadcast:

    cmd := client.Publish(broadcastChannel, message)
    if cmd.Err() != nil {
        // handle error
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机