| 12345678910111213141516171819202122232425262728293031323334 |
- using Application.Abstractions.Chat;
- namespace Application.Abstractions.Hub;
- /// <summary>
- /// AppHub 클라이언트 인터페이스 — 모든 페이지에서 사용하는 공통 Hub
- /// 접속자 추적 + 채팅 + 알림 + 쪽지 + 크루 초대/동의/toast
- /// </summary>
- public interface IAppHubClient
- {
- // ── 채팅 (기존 ChatHub 통합) ──────────────────────────────────
- Task ReceiveMessage(ChatMessage message);
- Task ReceiveHistory(IReadOnlyList<ChatMessage> messages);
- Task ReceiveSystemMessage(string message);
- Task ReceiveParticipantCount(int count);
- Task ReceiveParticipants(IReadOnlyList<ChatParticipant> participants);
- Task Connected(string message);
- Task Logout(string message);
- Task Kick();
- // ── 알림 + 쪽지 ──────────────────────────────────────────────
- Task ReceiveNotification(object notification);
- Task ReceiveNote(object notePreview);
- Task ReceiveUnreadCounts(int notificationCount, int noteCount);
- // ── 채널 상태 (PubSub 기반 실시간) ─────────────────────────
- Task ReceiveChannelStatus(object channelStatus);
- // ── 피드 ─────────────────────────────────────────────────────
- Task ReceiveFeedPost(object toast);
- // ── Presence (구독 기반 온라인 상태 broadcast) ──────────────
- Task ReceivePresenceChange(int memberID, bool isOnline);
- }
|