Azure Communication Services 채팅을 사용하면 플랫폼 간 애플리케이션에 실시간 텍스트 통신을 추가할 수 있습니다. 이 페이지에는 주요 채팅 개념 및 기능이 요약되어 있습니다. SDK, 언어, 플랫폼 및 자세한 기능 지원 목록은 Communication Services Chat SDK(Software Development Kit) 개요를 참조하세요.
채팅 API는 지속적으로 저장되는 텍스트 및 데이터 통신을 위한 자동 스케일링 서비스를 제공합니다. 기타 주요 기능은 다음과 같습니다.
-
사용자 지정 ID 및 주소 지정 - Azure Communication Services는 통신 엔드포인트의 주소를 지정하는 일반 ID를 제공합니다. 클라이언트는 이러한 ID를 사용하여 Azure 서비스에 대해 인증하고 사용자가 제어하는
chat threads
에서 서로 통신합니다. - 암호화 - 채팅 SDK는 트래픽을 암호화하고 유선 변조를 방지합니다.
- Microsoft Teams 모임 - 채팅 SDK는 Teams 모임에 조인하고 Teams 채팅 메시지와 통신할 수 있습니다.
- 실시간 알림 - 채팅 SDK는 효율적인 영구 연결(WebSocket)을 사용하여 원격 사용자가 입력하는 경우와 같은 실시간 알림을 받습니다. 앱이 백그라운드에서 실행되는 경우 팝업 알림("알림")을 실행하여 최종 사용자에게 새 스레드 및 메시지를 알리는 기본 제공 기능을 사용할 수 있습니다.
- 봇 확장성 - Azure Bot 통합을 사용하여 채팅 서비스에 Azure Bot을 쉽게 추가할 수 있습니다.
채팅 개요
채팅 대화는 채팅 스레드 내에서 발생합니다. 채팅 스레드는 다음 속성을 가집니다.
- 채팅 스레드 ID는
ChatThreadId
입니다. - 채팅 스레드에는 메시지를 보낼 수 있는 참가자로 0~250명의 사용자가 있습니다.
- 사용자는 무제한의 채팅 스레드에 속할 수 있습니다.
- 스레드 참가자만 메시지를 보내거나 받거나, 참가자를 추가하거나, 참가자를 제거할 수 있습니다.
- 사용자는 자신이 만든 모든 채팅 스레드에 참가자로 추가됩니다.
사용자 액세스
Azure Communication Services는 채팅 토큰을 사용하여 세 가지 수준의 사용자 액세스 제어를 지원합니다. 자세한 내용은 ID 및 토큰 참조하세요. 참가자는 다른 참가자가 보낸 메시지에 대한 쓰기 권한이 없으므로, 메시지를 보낸 사람만 보낸 메시지를 업데이트하거나 삭제할 수 있습니다. 다른 참가자가 이 작업을 시도하면 오류가 발생합니다.
채팅 데이터
Azure Communication Services는 스레드가 만들어질 때 적용되는 데이터 보존 정책에 따라 채팅 스레드를 저장합니다. 설정한 보존 기간 동안 필요한 경우 보존 정책을 업데이트할 수 있습니다. 정책이나 삭제 API 요청에 따라 채팅 스레드를 삭제한 후에는 검색할 수 없습니다.
Important
이 섹션에 설명된 데이터 보존 정책은 현재 공개 미리 보기로 제공됩니다. 이 미리 보기 버전의 서비스는 서비스 수준 계약 없이 제공되며 프로덕션 워크로드에는 권장되지 않습니다. 자세한 내용은 Microsoft Azure Preview에 대한 추가 사용 약관을 참조하세요.
무기한 스레드 보존, 채팅 스레드 만들기 API의 보존 정책을 통해 30~90일 사이에 자동 삭제, 채팅 메시지 삭제, 채팅 스레드 삭제 API를 사용하여 즉시 삭제 중에서 선택할 수 있습니다.
새 보존 정책 이전에 만들어진 스레드는 해당 스레드에 대한 정책을 특별히 변경하지 않는 한 영향을 받지 않습니다. 보존 정책이 해당 스레드를 삭제한 지 30일이 지난 후 삭제된 채팅 스레드에 대한 지원 요청을 제출하는 경우 더 이상 검색할 수 없으며 해당 스레드에 대한 정보를 사용할 수 없습니다. 필요한 경우 스레드를 만든 후 30일 이내에 지원 티켓을 최대한 빨리 열어 도움을 드릴 수 있습니다.
채팅 스레드 참가자는 ListMessages
를 사용하여 특정 스레드에 대한 메시지 기록을 볼 수 있습니다. 스레드가 삭제된 경우 ListMessages
API는 스레드 기록을 반환할 수 없습니다. 채팅 스레드에서 제거된 사용자는 이전 메시지 기록을 볼 수 있지만 새 메시지를 보내거나 받을 수는 없습니다. 시스템에서는 실수로 삭제된 메시지를 복구할 수 없습니다. Azure Communication Services 채팅 서비스에 저장되는 데이터에 대한 자세한 내용은 지역 가용성 및 데이터 상주를 참조 하세요.
가상 약속을 사용하는 고객의 경우 Teams 모임에서 채팅 메시지를 저장하려면 Teams 상호 운용성 사용자 개인 정보를 참조하세요.
서비스 제한
- 채팅 스레드에 허용되는 최대 참가자 수는 250명입니다.
- 허용되는 최대 메시지 크기는 약 28KB입니다.
- 참가자가 20명이 넘는 채팅 스레드의 경우 수신 확인 및 입력 표시기 기능이 지원되지 않습니다.
- Teams 상호 운용성 시나리오의 경우 입력 표시기 기능을 지원하려면 Teams 사용자가 아닌 Azure Communication Services 사용자의 수가 20 미만이어야 합니다.
- 채팅 스레드를 만들 때 보존 정책을 30일에서 90일 사이에 설정할 수 있습니다.
- 또한 Teams Interop 시나리오에는 다음과 같은 제한 사항이 있습니다.
채팅 아키텍처
채팅 아키텍처에는 1) 신뢰할 수 있는 서비스와 2) 클라이언트 애플리케이션의 두 가지 핵심 부분이 있습니다.
- 신뢰할 수 있는 서비스: 채팅 세션을 제대로 관리하려면 리소스 연결 문자열을 사용하여 Communication Services에 연결하는 데 도움이 되는 서비스가 필요합니다. 이 서비스는 채팅 스레드를 만들고, 참가자를 추가 및 제거하고, 사용자에게 액세스 토큰 발급을 담당합니다. 자세한 내용은 빠른 시작: 액세스 토큰 만들기 및 관리 빠른 시작을 참조하세요.
- 클라이언트 앱: 클라이언트 애플리케이션은 신뢰할 수 있는 서비스에 연결하고 사용자가 Communication Services에 직접 연결하는 데 필요한 액세스 토큰을 받습니다. 채팅 스레드를 만들고 참가자를 추가한 후 참가자는 클라이언트 애플리케이션을 사용하여 채팅 스레드에 연결하고 메시지를 보낼 수 있습니다. 참가자는 클라이언트 애플리케이션의 실시간 알림을 사용하여 다른 멤버의 메시지 및 스레드 업데이트를 구독할 수 있습니다.
지능형 AI 기반 채팅 환경 빌드
채팅 서비스와 함께 Azure AI 서비스를 사용하여 다음과 같은 사용 사례를 빌드할 수 있습니다.
- 고객에게서 들어오는 메시지에서 부정적인 감정을 감지하여 지원 상담원이 티켓의 우선 순위를 지정하도록 돕습니다.
- 대화가 끝나면 요약을 생성하여 이메일을 통해 고객에게 다음 단계를 보내거나 나중에 후속 조치를 취합니다.
- Azure 봇 및 릴레이 봇을 사용하여 Azure Communication Services 채팅 채널에 에이전트를 추가합니다.
- 채팅 채널과 함께 하나 이상의 소셜 채널에서 실행되도록 봇을 구성합니다.
메시지 유형
메시지 기록의 일부로 채팅은 사용자 생성 메시지와 시스템 생성 메시지를 공유합니다.
시스템 메시지는 다음과 같은 경우에 생성됩니다.
- 채팅 스레드가 업데이트됨
- 참가자가 추가되거나 제거되었음
- 채팅 스레드 토픽이 업데이트되었음
채팅 스레드에서 List Messages
또는 Get Messages
를 호출하면 결과에 두 종류의 메시지가 모두 시간순으로 포함됩니다. 사용자가 생성한 메시지의 경우 메시지를 채팅 스레드로 보낼 때 메시지 유형을 SendMessageOptions
에서 설정할 수 있습니다. 값이 제공되지 않으면 Communication Services는 기본적으로 text
유형으로 설정됩니다. HTML을 보낼 때 이 값을 설정하는 것이 중요합니다. 지정된 경우 html
Communication Services는 콘텐츠를 삭제하여 클라이언트 디바이스에서 안전하게 렌더링되도록 합니다.
-
text
: 채팅 스레드의 일부로 사용자가 작성하여 보낸 일반 문자 메시지입니다. -
html
: 채팅 스레드의 일부로 사용자가 작성하여 보낸 html을 사용하는 형식화된 메시지입니다.
시스템 메시지 형식:
-
participantAdded
: 한 명 이상의 참가자가 채팅 스레드에 있음을 나타내는 시스템 메시지입니다. -
participantRemoved
: 참가자가 채팅 스레드에서 제거되었음을 나타내는 시스템 메시지입니다. -
topicUpdated
: 스레드 항목이 업데이트되었음을 나타내는 시스템 메시지입니다.
실시간 알림
JavaScript 채팅 SDK는 실시간 알림을 지원합니다. 이 기능을 사용하면 클라이언트가 API를 폴링하지 않고도 실시간 업데이트 및 채팅 스레드에 들어오는 메시지를 위해 Communication Services를 수신 대기할 수 있습니다.
클라이언트 앱은 다음 이벤트를 구독할 수 있습니다.
-
chatMessageReceived
- 참가자가 새 메시지를 채팅 스레드로 전송할 때. -
chatMessageEdited
- 채팅 스레드에서 메시지가 편집될 때. -
chatMessageDeleted
- 채팅 스레드에서 메시지가 삭제될 때. -
typingIndicatorReceived
- 다른 참가자가 입력 표시기를 채팅 스레드로 보낼 때. -
readReceiptReceived
- 다른 참가자가 읽은 메시지에 대해 읽음 확인을 보낼 때. -
chatThreadCreated
- Communication Services 사용자가 채팅 스레드를 만들 때 -
chatThreadDeleted
- Communication Services 사용자가 채팅 스레드를 삭제할 때 -
chatThreadPropertiesUpdated
- 채팅 스레드 속성이 업데이트될 때, 현재 스레드에 대한 토픽 업데이트만 지원됩니다. -
participantsAdded
- 사용자가 채팅 스레드 참가자로 추가될 때. -
participantsRemoved
- 기존 참가자가 채팅 스레드에서 제거될 때. -
realTimeNotificationConnected
- 실시간 알림이 연결된 경우 -
realTimeNotificationDisconnected
- 실시간 알림의 연결이 끊어진 경우
참고 항목
실시간 알림은 서버 애플리케이션에서 사용할 수 없습니다.
서버 이벤트
이 기능을 사용하면 서버 애플리케이션은 메시지가 전송될 때, 참가자가 채팅에 참여하거나 나갈 때와 같은 이벤트를 수신 대기할 수 있습니다. 서버 애플리케이션은 이러한 이벤트에 반응하여 채팅에 참가자를 추가/제거하고, 채팅을 보관하고, 분석을 수행하고, 오케스트레이션을 위한 다른 많은 시나리오를 수행할 수 있습니다. 개발자가 사용할 수 있는 채팅 이벤트를 보려면 Azure Communication Services를 Azure Event Grid 원본으로 참조하세요.
푸시 알림
Android 및 iOS 채팅 SDK는 푸시 알림을 지원합니다. 참가자가 자리를 비운 동안 놓친 메시지에 대해 푸시 알림을 보내려면 알림 허브 리소스를 Communication Services 리소스와 연결하여 푸시 알림을 보냅니다. 이렇게 하면 모바일 앱이 포그라운드에서 실행되고 있지 않을 때 애플리케이션 참가자에게 들어오는 채팅 및 메시지에 대해 알 수 있습니다.
IOS 및 Android SDK는 다음 이벤트를 지원합니다.
-
chatMessageReceived
- 참가자가 채팅 스레드에 새 메시지를 보내는 경우.
Android SDK는 추가 이벤트를 지원합니다.
-
chatMessageEdited
- 참가자가 채팅 스레드에서 메시지를 편집하는 경우. -
chatMessageDeleted
- 참가자가 채팅 스레드에서 메시지를 삭제하는 경우. -
chatThreadCreated
- Communication Services 사용자가 채팅 스레드를 만들 때 -
chatThreadDeleted
- Communication Services 사용자가 채팅 스레드를 삭제할 때 -
chatThreadPropertiesUpdated
- 채팅 스레드 속성을 업데이트하는 경우 현재는 스레드에 대한 항목 업데이트만 지원됩니다. -
participantsAdded
- 채팅 스레드에 참가자를 추가하는 경우. -
participantsRemoved
- 채팅 스레드에서 기존 참가자를 제거하는 경우.
자세한 내용은 푸시 알림을 참조하세요.
참고 항목
현재 Notification Hub를 사용하여 채팅 푸시 알림을 보내는 기능은 일반적으로 Android 버전 1.1.0 및 IOS 버전 1.3.0에서 사용할 수 있습니다.
다음 단계
관련된 문서
- 채팅 SDK를 숙지하세요.
- ID 및 토큰을 사용하여 스레드의 참가자에 대한 액세스 제어
- UI 라이브러리를 사용하여 애플리케이션 또는 모바일 앱 빌드