百万级并发IM即时消息系统(7)redis和websocket的消息队列

redis的消息发布(publish)/ 订阅(subscribe)_redis publish/subscribe_baijiwei的博客-CSDN博客什么是消息队列啊? - 知乎 (zhihu.com)

Redis Publish 命令 | 菜鸟教程 (runoob.com)

1.redis的订阅和发布

// Publish 发布消息到Redis
// ctx 管道  消息体内容
func Publish(ctx context.Context, channel string, msg string) error {
	var err error
	fmt.Println("Publish 。。。。", msg)
	err = Red.Publish(ctx, channel, msg).Err()
	if err != nil {
		fmt.Println(err)
	}
	return err
}

// Subscribe 订阅Redis消息
func Subscribe(ctx context.Context, channel string) (string, error) {
	sub := Red.Subscribe(ctx, channel)
	fmt.Println("Subscribe 。。。。", ctx)
	msg, err := sub.ReceiveMessage(ctx)
	if err != nil {
		fmt.Println(err)
		return "", err
	}
	fmt.Println("Subscribe 。。。。", msg.Payload)
	return msg.Payload, err
}

2.websocket

看懵了,回头补习一下

你可能感兴趣的:(go,IM聊天系统,redis,websocket,数据库)