Skip to content

Commit 8f19ae2

Browse files
committed
Feat: redis session storage
1 parent 161e407 commit 8f19ae2

File tree

3 files changed

+50
-5
lines changed

3 files changed

+50
-5
lines changed

โ€Žsrc/main/java/cmf/commitField/domain/chat/chatRoom/service/ChatRoomServiceImpl.javaโ€Ž

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -122,8 +122,8 @@ public List<ChatRoomDto> getRoomList(Pageable pageable) {
122122
@Override
123123
@Transactional(readOnly = true)
124124
public List<ChatRoomDto> roomsByCreatorUser(Long userId, Pageable pageable) {
125-
Page<ChatRoom> all = chatRoomRepository.findAllByUserId(userId, pageable);
126-
return getChatRoomDtos(all);
125+
Page<ChatRoom> userCreateAll = chatRoomRepository.findAllByUserId(userId, pageable);
126+
return getChatRoomDtos(userCreateAll);
127127
}
128128

129129
// ์ž์‹ ์ด ์ฐธ์—ฌํ•œ ๋ฐฉ ๋ฆฌ์ŠคํŠธ ์กฐํšŒ
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
package cmf.commitField.global.config;
2+
3+
import org.springframework.beans.factory.annotation.Value;
4+
import org.springframework.context.annotation.Bean;
5+
import org.springframework.context.annotation.Configuration;
6+
import org.springframework.data.redis.connection.RedisConnectionFactory;
7+
import org.springframework.data.redis.connection.RedisStandaloneConfiguration;
8+
import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory;
9+
import org.springframework.data.redis.core.RedisTemplate;
10+
import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;
11+
import org.springframework.data.redis.serializer.StringRedisSerializer;
12+
13+
@Configuration
14+
public class RedisConfig {
15+
@Value("${spring.redis.host}")
16+
public String host;
17+
18+
@Value("${spring.redis.port}")
19+
public int port;
20+
21+
22+
@Bean
23+
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory connectionFactory) {
24+
RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
25+
redisTemplate.setKeySerializer(new StringRedisSerializer()); // Redis ํ‚ค๋ฅผ ๋ฌธ์ž์—ด๋กœ ์ง๋ ฌํ™”
26+
redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer()); // ๊ฐ’์˜ ์ง๋ ฌํ™”๋ฅผ ์œ„ํ•ด -> Redis (JSON)
27+
redisTemplate.setConnectionFactory(connectionFactory); // ์—ฐ๊ฒฐ ๋‹ค ๋œ Redis -> Factory์™€ ์—ฐ๊ฒฐ
28+
return redisTemplate;
29+
}
30+
31+
@Bean
32+
public RedisConnectionFactory redisConnectionFactory() {
33+
RedisStandaloneConfiguration configuration = new RedisStandaloneConfiguration();
34+
configuration.setHostName(host);
35+
configuration.setPort(port);
36+
return new LettuceConnectionFactory(configuration);
37+
}
38+
}

โ€Žsrc/main/java/cmf/commitField/global/websocket/ChatWebSocketHandler.javaโ€Ž

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
@Slf4j
1717
public class ChatWebSocketHandler implements WebSocketHandler {
1818

19-
private Map<Long, List<WebSocketSession>> chatRooms = new HashMap<>();
19+
private final Map<Long, List<WebSocketSession>> chatRooms = new HashMap<>();
2020
// ๋ฐฉ์˜ ํ‚ค๊ฐ’
2121

2222

@@ -92,8 +92,15 @@ private Long extractRoomId(WebSocketSession session) {
9292
String[] uriParts = uri.split("/");
9393
// EX_URL) /chat/room/{roomId} ์ผ ๋•Œ roomId ์ถ”์ถœ
9494
// ๋Š˜์–ด๋‚œ๋‹ค๋ฉด ์ˆ˜ ๋ณ€๊ฒฝํ•ด์ฃผ๋ฉด.. (์ผ๋‹จ ์ž„์‹œ๋กœ ์„ค์ •)
95-
if (uriParts.length >= 3 && uriParts[2].equals("room")) {
96-
roomId = Long.valueOf(uriParts[3]);
95+
// if (uriParts.length >= 3 && uriParts[2].equals("room")) {
96+
// roomId = Long.valueOf(uriParts[3]);
97+
if (uriParts.length >= 4 && uriParts[2].equals("msg")) {
98+
return Long.valueOf(uriParts[3]);
99+
}
100+
// /chat/room/join/{roomId}, /chat/room/out/{roomId}, /chat/room/delete/{roomId} ์ผ ๋•Œ roomId ์ถ”์ถœ
101+
if (uriParts.length >= 5 && uriParts[2].equals("room") &&
102+
(uriParts[3].equals("join") || uriParts[3].equals("out") || uriParts[3].equals("delete"))) {
103+
roomId = Long.valueOf(uriParts[4]);
97104
}
98105
return roomId;
99106
}

0 commit comments

Comments
ย (0)