发布者:做广播的动作
订阅者:订阅者需要在启动java的时候就加载进去,必须是这个时刻。否则的话发布消息的时候还没订阅,那广播的动作已经在做,同时订阅和广播就会出现时间差。
springboot结合redis的发布订阅关键代码
// 发布
redisTemplate.convertAndSend("my_topic_name", "message_content");
// 配置订阅
RedisMessageListenerContainer container = new RedisMessageListenerContainer();
container.setConnectionFactory(connectionFactory);
container.addMessageListener(xxxMessageListenerAdapter, "my_topic_name");
hollis
redis.convertAndSend()这个方法的作用为,向某个通道(参数1)推送一条消息(第二个参数)。
注意:生产者和消费者的通道名要相同。
发布订阅是一种消息模式,消息的发送者(称为发布者)不会将消息直接发送给特定的接收者(称为订阅者)。而是将发布的消息分为不同的类别,无需了解哪些订阅者(如果有的话)可能存在。同样的,订阅者可以表达对一个或多个类别的兴趣,只接收感兴趣的消息,无需了解哪些发布者(如果有的话)存在。
先看看别人的,运行成功java引导者
缺陷:
1要是id对上了即第一次发送就成功了就不用去广播了,加个if判断1
2还有就是自己这里的usermap是map
这里的websocket对象这个是直接继承的。就相当于别人的那个websocketServer(),别人只是重新封装了一下重载
3我自己的业务要求是2个实例