IYouTubeLiveChatService.cs 900 B

1234567891011121314151617181920212223
  1. namespace Application.Abstractions.YouTube;
  2. /// <summary>
  3. /// YouTube 라이브 채팅 수집 서비스
  4. /// PubSubHubbub 알림 → videos.list 확인 → streamList/폴링으로 채팅 수집
  5. /// </summary>
  6. public interface IYouTubeLiveChatService
  7. {
  8. /// <summary>특정 videoId의 라이브 채팅 모니터링 시작</summary>
  9. Task<bool> StartAsync(string videoId, CancellationToken ct);
  10. /// <summary>라이브 채팅 모니터링 중지</summary>
  11. Task StopAsync(string liveChatId);
  12. /// <summary>현재 모니터링 중인지 확인</summary>
  13. bool IsMonitoring(string liveChatId);
  14. /// <summary>모니터링 중인 모든 liveChatId 목록</summary>
  15. IReadOnlyList<string> GetActiveChatIds();
  16. /// <summary>새 메시지 수신 이벤트 — ChatHub에서 구독하여 브로드캐스트</summary>
  17. event Func<YouTubeChatMessage, Task>? OnMessageReceived;
  18. }