🎨 websocket-starter 与redis 解耦将默认注册的消息分发器由 redis 改为 local,基于内存分发,可通过 ballcat.websocket.message-distributor 属性修改为 redis 或者自定义。

This commit is contained in:
b2baccline
2021-09-25 17:53:43 +08:00
parent 1f29af2daa
commit 802319d658
9 changed files with 147 additions and 35 deletions

View File

@@ -2,16 +2,11 @@ package com.hccake.ballcat.admin.websocket;
import com.hccake.ballcat.admin.websocket.user.UserAttributeHandshakeInterceptor;
import com.hccake.ballcat.admin.websocket.user.UserSessionKeyGenerator;
import com.hccake.ballcat.common.websocket.distribute.MessageDistributor;
import com.hccake.ballcat.common.websocket.distribute.RedisMessageDistributor;
import com.hccake.ballcat.common.websocket.distribute.RedisWebsocketMessageListener;
import lombok.RequiredArgsConstructor;
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.web.socket.server.HandshakeInterceptor;
/**
@@ -35,16 +30,4 @@ public class AdminWebSocketAutoConfiguration {
return new UserSessionKeyGenerator();
}
@Bean
@ConditionalOnMissingBean(MessageDistributor.class)
public RedisMessageDistributor messageDistributor(StringRedisTemplate stringRedisTemplate) {
return new RedisMessageDistributor(stringRedisTemplate);
}
@Bean
@ConditionalOnBean(RedisMessageDistributor.class)
public RedisWebsocketMessageListener redisWebsocketMessageDelegate(StringRedisTemplate stringRedisTemplate) {
return new RedisWebsocketMessageListener(stringRedisTemplate);
}
}