@@ -33,6 +33,10 @@ public async Task RegisterSessionAsync(string sessionId, WebSocket socket, strin
3333 ConnectedAt = DateTime . UtcNow
3434 } ;
3535
36+ // 활성 연결에 추가
37+ _activeConnections . TryAdd ( sessionId , connection ) ;
38+
39+ // Repository에도 저장
3640 await _sessionRepository . CreateAsync ( connection ) ;
3741 _logger . LogInformation ( "세션 등록 완료: {SessionId}" , sessionId ) ;
3842 }
@@ -47,6 +51,10 @@ public async Task UnregisterSessionAsync(string sessionId)
4751 {
4852 try
4953 {
54+ // 활성 연결에서 제거
55+ _activeConnections . TryRemove ( sessionId , out _ ) ;
56+
57+ // Repository에서도 제거
5058 await _sessionRepository . DeleteAsync ( sessionId ) ;
5159 _logger . LogInformation ( "세션 해제 완료: {SessionId}" , sessionId ) ;
5260 }
@@ -283,11 +291,16 @@ public async Task SendWebSocketMessageAsync(string sessionId, WebSocketMessage m
283291 {
284292 try
285293 {
286- var connection = await _sessionRepository . GetAsync ( sessionId ) ;
287- if ( connection == null )
294+ // 먼저 활성 연결에서 확인
295+ if ( ! _activeConnections . TryGetValue ( sessionId , out var connection ) )
288296 {
289- _logger . LogWarning ( "세션을 찾을 수 없음: {SessionId}" , sessionId ) ;
290- return ;
297+ // Repository에서 조회
298+ connection = await _sessionRepository . GetAsync ( sessionId ) ;
299+ if ( connection == null )
300+ {
301+ _logger . LogWarning ( "세션을 찾을 수 없음: {SessionId}" , sessionId ) ;
302+ return ;
303+ }
291304 }
292305
293306 var jsonMessage = JsonSerializer . Serialize ( message ) ;
@@ -315,7 +328,7 @@ public async Task SendSessionIdAsync(string sessionId)
315328 try
316329 {
317330 var sessionData = new { session_id = sessionId } ;
318- var wsMessage = new WebSocketMessage ( "session_id " , sessionData ) ;
331+ var wsMessage = new WebSocketMessage ( "session " , sessionData ) ;
319332 await SendWebSocketMessageAsync ( sessionId , wsMessage ) ;
320333
321334 _logger . LogInformation ( "세션 ID 전송 완료: {SessionId}" , sessionId ) ;
0 commit comments