@@ -139,7 +139,9 @@ public async Task SendIntegratedMessageAsync(string sessionId, string? text = nu
139139 // 오디오 데이터를 Base64로 변환
140140 integratedMessage . SetAudioData ( audioData ) ;
141141
142- var jsonMessage = JsonSerializer . Serialize ( integratedMessage ) ;
142+ // WebSocket 메시지로 래핑
143+ var wsMessage = new WebSocketMessage ( "chat" , integratedMessage ) ;
144+ var jsonMessage = JsonSerializer . Serialize ( wsMessage ) ;
143145 var buffer = Encoding . UTF8 . GetBytes ( jsonMessage ) ;
144146
145147 await connection . WebSocket . SendAsync (
@@ -276,5 +278,53 @@ public async Task<bool> SessionExistsAsync(string sessionId)
276278 return false ;
277279 }
278280 }
281+
282+ public async Task SendWebSocketMessageAsync ( string sessionId , WebSocketMessage message )
283+ {
284+ try
285+ {
286+ var connection = await _sessionRepository . GetAsync ( sessionId ) ;
287+ if ( connection == null )
288+ {
289+ _logger . LogWarning ( "세션을 찾을 수 없음: {SessionId}" , sessionId ) ;
290+ return ;
291+ }
292+
293+ var jsonMessage = JsonSerializer . Serialize ( message ) ;
294+ var buffer = Encoding . UTF8 . GetBytes ( jsonMessage ) ;
295+
296+ await connection . WebSocket . SendAsync (
297+ new ArraySegment < byte > ( buffer ) ,
298+ WebSocketMessageType . Text ,
299+ true ,
300+ CancellationToken . None
301+ ) ;
302+
303+ _logger . LogInformation ( "WebSocket 메시지 전송 완료: {SessionId}, 타입: {MessageType}" ,
304+ sessionId , message . Type ) ;
305+ }
306+ catch ( Exception ex )
307+ {
308+ _logger . LogError ( ex , "WebSocket 메시지 전송 실패: {SessionId}" , sessionId ) ;
309+ throw ;
310+ }
311+ }
312+
313+ public async Task SendSessionIdAsync ( string sessionId )
314+ {
315+ try
316+ {
317+ var sessionData = new { session_id = sessionId } ;
318+ var wsMessage = new WebSocketMessage ( "session_id" , sessionData ) ;
319+ await SendWebSocketMessageAsync ( sessionId , wsMessage ) ;
320+
321+ _logger . LogInformation ( "세션 ID 전송 완료: {SessionId}" , sessionId ) ;
322+ }
323+ catch ( Exception ex )
324+ {
325+ _logger . LogError ( ex , "세션 ID 전송 실패: {SessionId}" , sessionId ) ;
326+ throw ;
327+ }
328+ }
279329 }
280330}
0 commit comments