zoukankan      html  css  js  c++  java
  • Redis实现消息的发布/订阅

    利用spring-boot结合redis进行消息的发布与订阅:

      发布:

      class Publish {

        private static String topicName = “Topic:chat”;

        @Bean

        RedisMessageListenerContainer container(RedisConnectionFactory connectionFactory, MessageListenerAdapter messageListenerAdapter ) {

          RedisMessageListenerContainer  redisMessageListenerContainer  = new RedisMessageListenerContainer ();

          redisMessageListenerContainer.setConnectionFactory(connectionFactory);

          redisMessageListenerContainer.addMessageListenerAdapter(messageListenerAdapter ,new PatternTopic(topicName ));

          return  redisMessageListenerContainer;

        }

        @Bean

        MessageListenerAdapter messageListenerAdapter(Receiver recevier){

          return new MessageListenerAdapter (recevier,"receiveMessage");

        }

        @Bean

        Receiver recevier(@Value("Receiver-1") String name) {

          return new Receiver(name);

        }

        public static main(String[] args) {

          ApplicationContext ctx = SpringApplication.run(Publish .class,args);

          StringRedisTemple stringRedisTemple = ctx.getBean(StringRedisTemple.class);

          stringRedisTemple.convertAndSend(topicName ,"HAHAHAHAHAHA"); 

        }

      } 

          订阅:

      class Receiver {

        private String name;

        @Autowired

        public Receiver(String name) {

          this.name = name;

        }

        public void receiveMessage(String message) {

          System.ount.println(name + message);

        }

      }

      

  • 相关阅读:
    Enable Zombie
    python中调用c文件中的函数(ubuntu)
    NSNotificationCenter使用心得(原)
    TCP/UDP
    xcconfig 文件使用( 转 )
    TS流解析 (转)
    c 数字和char类型转换
    结构体如何使用NSData包装
    NSValue 保存定长的结构体
    遍历DOM的所有节点,输出宽度高度都大于50的元素节点名称
  • 原文地址:https://www.cnblogs.com/stanljj/p/7119687.html
Copyright © 2011-2022 走看看