그룹 메시지

사용 사례

그룹 내 메시지 수발신

그룹 구성원은 그룹 내에서 메시지를 보내고 받습니다.

App 관리자 메시지 발송

App 관리자는 백엔드에서 그룹 메시지를 발송할 수 있고, 다른 사용자 신분으로 메시지를 보낼 수도 있습니다(App 관리자 또는 발신자가 그룹 구성원이 아니어도 메시지 발송 가능).

App 관리자 시스템 메시지 시뮬레이션

App 관리자는 백엔드에서 메시지 발송을 통해 시스템 메시지 형식으로 그룹 내 온라인 구성원에게 알림 메시지를 보내는 것을 시뮬레이션할 수 있습니다. App은 App 관리자의 사용자 정의 메시지를 받으면 특수 처리 합니다.

그룹 메시지의 SEQ 메커니즘

IM은 모든 그룹에 대해 하나의 메시지 SEQ를 관리합니다. SEQ의 초기값은 1이며 그룹 내에서 일반 메시지 한 건이 발생하면 IM 백엔드는 현재 SEQ 값을 해당 메시지의 SEQ로 설정하고 현재 SEQ에 1을 더합니다. 그룹 ID와 SEQ는 함께 메시지의 고유 식별자를 구성합니다.
주의:
IM은 로밍 저장소가 적용되는 메시지에 대해서만 증분 SEQ를 생성합니다.

그룹 메시지 유형

메시지 유형
설명
텍스트 메시지
일반 텍스트로 구성된 메시지
이미지 메시지
이미지 URL 주소, 사이즈, 이미지 크기 등 정보로 구성된 메시지 내용
이모티콘 메시지
개발자 사용자 정의 이모티콘 메시지
음성 메시지
음성 데이터는 지속시간 정보가 포함되어야 함(단위: 초)
지리적 위치 메시지
지리적 위치명, 경도, 위도 정보로 구성된 메시지 내용
텍스트 메시지
파일의 URL 주소, 크기, 형식 등 정보로 구성된 메시지 내용. 형식 제한 없으며 최대 100M 지원
쇼트 비디오 메시지
쇼트 비디오 파일의 URL 주소, 길이, 크기, 형식 등 정보로 구성된 메시지. 최대 100M 지원
사용자 정의 메시지
홍바오 메시지, 가위바위보 등과 같은 개발자 사용자 정의 메시지 유형
시스템 알림 메시지
내부 시스템 알림 메시지 및 개발자 사용자 정의 시스템 알림 메시지 포함

그룹 채팅 메시지 기능

유형
기능 설명
응용 시나리오
일반 그룹 메시지 발송
API를 통해 메시지를 보낼 수 있습니다. RESTful API를 호출하여 App 관리자는 그룹에 가입하지 않고도 모든 그룹에서 메시지를 보낼 수 있습니다.
그룹 구성원은 그룹에서 메시지를 보내고 App 관리자는 모든 그룹에서 메시지를 보낼 수 있습니다
그룹 시스템 메시지 발송
RESTful API를 호출하여 App 관리자는 그룹에 가입하지 않고도 모든 그룹에서 시스템 메시지를 보낼 수 있습니다. 이러한 시스템 메시지는 온라인 그룹 구성원만 수신하며 로밍 기능이 없습니다.
App 관리자는 시간에 민감한 알림을 온라인 그룹 구성원 전체 또는 일부에게 푸시합니다
그룹 메시지 오프라인 푸시
Apple, Huawei, Xiaomi, OPPO, vivo, Meizu 휴대폰에서 지원
그룹 채팅 메시지의 오프라인 푸시
온라인 그룹 메시지 수신
그룹 구성원은 IM SDK를 통해 온라인 그룹 메시지를 받을 수 있습니다
온라인 그룹 구성원은 실시간으로 그룹 메시지를 받습니다
그룹 구성원 오프라인 메시지 또는 기록 메시지 가져오기
그룹 구성원은 IM SDK를 통해 메시지 기록 메시지를 쿼리할 수 있습니다
그룹 구성원은 다시 온라인 상태가 되면 오프라인 메시지를 받고 그룹 구성원은 그룹 채팅 기록을 볼 수 있습니다
App 백엔드 그룹 메시지 가져오기
App 관리자는 REST API를 통해 특정 기간 동안 생성된 모든 메시지를 다운로드할 수 있습니다. App 관리자는 REST API를 통해 모든 그룹의 채팅 기록을 얻을 수도 있습니다. App 백엔드는 메시지가 그룹에서 전송된 후 콜백을 통해 그룹 메시지를 가져올 수 있습니다.
App은 정기적으로 메시지 기록을 백업합니다. App은 특정 그룹의 메시지 기록을 신속하게 가져와야 합니다. App은 실시간으로 그룹 메시지를 받아야 합니다.
메시지 삭제
REST API를 통해 기록 메시지가 더 이상 전파되지 않도록 삭제할 수 있습니다
그룹에서 악의적인 정보를 삭제합니다
그룹 메시지에는 발신자 프로필 포함
그룹 메시지에 발신자의 닉네임, 프로필 사진, 그룹 명함, 사용자 레벨 사용자 정의 필드 및 회원 레벨 사용자 정의 필드가 포함될 수 있습니다
닉네임 및 프로필 사진과 같은 보낸 사람 정보를 표시합니다
그룹 메시지 발송 제어
그룹 메시지를 보내기 전에 음소거 및 콜백 이벤트를 통해 그룹 메시지 전송을 제어할 수 있습니다.
그룹 구성원이 메시지를 보내지 못하도록 방지하고, 모든 그룹 구성원이 메시지를 보내지 못하게 하고, App 백엔드에서 메시지를 필터링하거나 수정합니다
그룹 메시지 수신 제어
개별 그룹에 대해 서로 다른 메시지 수신 옵션을 설정할 수 있습니다: 수신 및 알림, 알림 없이 수신, 메시지 차단. ‘알리지 않고 수신’을 선택하면 iOS 장치가 APNs를 비활성화합니다.
사용자가 그룹의 메시지를 차단합니다
그룹 메시지 빈도 제어
일반 그룹 메시지의 전송 빈도를 제어합니다. 기본값은 초당 40개 메시지입니다. App 관리자가 REST API를 통해 보낸 그룹 시스템 메시지는 빈도 제어 대상이 아닙니다. 자세한 내용은 아래에 설명된 메시지 우선순위 및 빈도 제어를 참고하십시오.
스팸 메시지를 방지합니다
주의:
발신자 닉네임 및 프로필 사진을 포함하려면, 이 2개 필드 정보를 IM의 사용자 프로필로 가져옵니다. 사용자 정의 필드를 포함해야 하는 경우 콘솔에서 사용자 정의 필드를 구성하고 티켓을 제출하여 해당 필드를 메시지에 추가하십시오.

그룹 메시지 발송 제어

다음과 같은 방법으로 그룹 메시지 발송을 제어할 수 있습니다.
제어 방식
상세 설명
그룹 구성원 음소거
일정 시간 동안 그룹 구성원이 메시지를 보내지 못하게 합니다. 이 기능은 단일 그룹 내에서 유효합니다. 음소거된 사용자가 그룹을 떠났다가 다시 가입하면 음소거 시간이 만료될 때까지 음소거 상태가 유지됩니다.
그룹 메시지 발송 전 콜백
메시지가 그룹 구성원에게 전달되기 전에 IM은 App 백엔드에서 권한을 확인합니다. 허용되지 않으면 메시지가 전달되지 않습니다.
콜백을 수신한 후 App 백엔드는 메시지 콘텐츠를 수정하고 수정된 메시지를 전달하는 IM으로 반환할 수 있습니다. 자세한 내용은 그룹 내 발언 전 콜백을 참고하십시오.
콜백을 호출한 후 IM은 재시도 없이 2초 내에 응답을 받지 못한 경우 메시지를 직접 전달합니다

메시지 우선순위 및 빈도 제어

그룹 메시지 우선순위

그룹 메시지는 우선순위에 따라 세 가지 레벨로 나뉩니다. 그룹이 메시지 빈도 한도를 초과하면 백엔드는 우선순위가 높은 메시지를 먼저 전달합니다. 따라서 메시지의 중요도에 따라 적절한 우선순위를 선택하십시오. 다음은 3가지 우선순위를 높음에서 낮음 순으로 나열한 것입니다.
우선순위
권장 메시지 유형
High
홍바오 메시지 및 선물 메시지
Normal
일반 텍스트 메시지
Low
좋아요 메시지

그룹 메시지 빈도 제어

숫자 기반 빈도 제어

설명:
숫자 기반 빈도 제어는 단일 그룹에서 초당 모든 클라이언트 API가 보내는 최대 메시지 수를 제한합니다. 기본값은 초당 40개 메시지입니다. 보낸 메시지 수가 한도를 초과하면 백엔드는 우선순위가 높은 메시지를 먼저 전달하고 우선순위가 같은 메시지는 무작위로 전달합니다.
빈도 제어에 의해 제한된 메시지는 전달되지 않거나 메시지 기록에 저장되지 않지만 발신자에게 성공 응답이 반환됩니다. 그룹 내 발언 전 콜백이 실행되지만 그룹 내 발언 후 콜백은 실행되지 않습니다.

우선순위 기반 빈도 제어

우선순위 기반 빈도 제어는 단일 그룹에서 초당 특정 우선순위로 전송되는 최대 메시지 수를 제한합니다. 메시지 전송 요청은 우선순위 기반 빈도 제어 처리에 들어가기 전에 먼저 번호 기반 빈도 제어 검사를 통과해야 합니다.
모든 메시지에는 초당 40개 메시지의 빈도 제한이 적용됩니다. 세 가지 레벨의 우선순위를 설정할 수 있습니다. High 우선순위의 메시지는 제한되지 않을 가능성이 가장 높은 우선순위 메시지입니다. 그러나 1초 동안 전송된 우선순위가 높은 메시지의 수가 40을 초과하면 우선순위가 높은 메시지도 폐기됩니다.

오프라인 그룹 메시지 프로세스





오프라인 그룹 메시지 프로세스는 다음과 같습니다.

1. 사용자 A는 사용자 B가 오프라인일 때 그룹 C에 메시지를 보내기 위해 sendMessage를 호출합니다. 1.1 그룹 C는 사용자 B의 최근 대화 상대에 추가되며 최대 100개의 메시지가 캐시됩니다. 1.2 사용자는 최신 그룹 메시지 seq를 포함하여 그룹의 메시지 정보를 업데이트합니다. 1.3 메시지는 7일 동안 로밍 서버에 저장됩니다.
2. 사용자 B가 login API를 호출하여 IM에 로그인합니다.
3. SDK는 최신 메시지 seq 및 읽지 않은 메시지 수를 포함한 모든 그룹 메시지 seq 정보를 자동으로 가져옵니다.
4. SDK는 OnNewMessage API를 통해 최근 연락처와 출력을 자동으로 가져옵니다.
5. 그룹 메시지 동기화가 완료되면 OnRefresh API를 통해 사용자에게 알립니다.
6. 사용자가 getMessage를 호출하면 SDK가 자동으로 로밍 서버에서 메시지를 풀링합니다.