개념
사용자 상태 유형은 다음 세 가지가 있습니다.
포그라운드에서 실행(Online)
백그라운드에서 실행(PushOnline)
로그인하지 않음(Offline)
주의:
백그라운드 실행(PushOnline) 상태는 모바일 클라이언트(Android, iOS, iPad)에만 존재하며, PC, Mac, Linux 또는 Web 클라이언트에는 존재하지 않습니다.
포그라운드 실행 상태(Online)
온라인 상태(Online)는 클라이언트와 IM 서버 간에 원활한 TCP 연결이 유지됨을 의미합니다. 이 조건에서 클라이언트는 IM 서버에 메시지를 보내고 여기에서 메시지를 받을 수 있습니다.
사용자가 App을 열면 상태는 Online이 됩니다.
App이 시작되면 클라이언트와 IM 서버 간에 TCP 영구 연결이 설정됩니다. IM 서버는 네트워크 링크, 플랫폼 및 버전과 같은 클라이언트의 온라인 정보를 저장합니다. App이 실행 중일 때 IM SDK는 정기적으로 하트비트를 보내 사용자의 온라인 상태를 확인합니다.
설명:
하트비트: 2분마다 IM SDK는 서버에 하트비트 패킷을 전송하여 사용자의 온라인 상태를 확인합니다.
백그라운드에서 실행(PushOnline)
클라이언트가 PushOnline 상태이면 클라이언트와 IM 서버 간의 TCP 영구 연결이 끊어집니다. 이 경우 오프라인으로 푸시된 메시지를 수신할 수 있습니다.
다음 시나리오에서 사용자의 상태는 PushOnline입니다.
App 사용 후 사용자가 App을 백그라운드로 전환한 후 휴대폰 운영체제(OS)에 의해 App 프로세스가 kill되거나 사용자가 직접 App 프로세스를 kill합니다.
App이 휴대폰 OS의 연결 유지 얼로우리스트에 있는 경우 OS는 사용자가 App을 백그라운드로 전환한 후에도 App 프로세스를 kill하지 않습니다. 이 경우 상태는 여전히 온라인입니다. Online과 PushOnline을 구별하는 한 가지 기준은 App 프로세스가 kill되었는지 여부, 즉 클라이언트와 IM 서버 간의 TCP 영구 연결이 끊어졌는지 여부입니다.
사용자가 네트워크에서 클라이언트 연결을 끊거나(예: 휴대폰에서 비행 모드를 활성화하여) 클라이언트의 네트워크를 완전히 사용할 수 없습니다(예: 사용자가 터널에 들어갈 때).
이러한 상황에서 클라이언트는 TCP FIN 또는 RST 패킷을 보낼 수도 없으며 하트비트 패킷이 시간 초과되기까지 400초가 걸립니다. 그 후 사용자의 상태는 PushOnline으로 변경됩니다.
주의:
PushOnline 상태는 모바일 클라이언트(Android, iOS, iPad)에만 존재하며 PC, Mac, Linux, 미니 프로그램 및 Web 클라이언트에는 존재하지 않습니다.
로그인하지 않음(Offline)
Offline은 사용자가 로그인을 위해 사용자 이름과 비밀번호를 입력하기 전의 상태를 말합니다. 이 경우 사용자는 온라인 및 오프라인 메시지 푸시를 받을 수 없습니다.
다음 시나리오에서 사용자의 상태는 Offline 상태입니다.
사용자가 App을 다운로드한 후 로그아웃했거나 App에 로그인하지 않았습니다.
사용자의 상태가 PushOnline으로 변경된 후 7일 이내에 사용자가 다시 로그인하지 않습니다. 이 경우 상태가 Offline으로 변경됩니다.
사용자의 온라인 상태 쿼리
사용자 온라인 상태 변경 알림
IM은 App 백엔드에 사용자 로그인 및 로그아웃 이벤트를 알릴 수 있습니다. 자세한 내용은 상태 변경 콜백을 참고하십시오. 실시간 상태 변화 감지
Android/iOS/iPad/PC/Mac/Linux
대부분의 경우 사용자 상태 변화를 실시간으로 감지할 수 있습니다. 예시:
사용자가 로그인하면 사용자의 상태가 Online으로 변경됩니다.
사용자가 로그아웃하면 사용자의 상태가 Offline으로 변경됩니다.
사용자가 클라이언트 프로세스를 kill하거나, 사용자가 앱을 백그라운드로 전환하고 클라이언트 프로세스가 휴대폰 OS에 의해 kill되면 사용자의 상태가 PushOnline으로 변경됩니다.
다음과 같은 특별 상황에서 하트비트가 시간 초과되기까지 400초가 걸립니다. 그 후 IM CVM 인스턴스는 상태 변화를 감지할 수 있습니다.
네트워크를 완전히 사용할 수 없고 클라이언트가 TCP FIN 또는 RST 패킷을 보낼 수도 없는 경우 하트비트 시간이 초과되기까지 400초가 걸립니다. 그 후 IM CVM 인스턴스는 사용자의 상태가 PushOnline으로 변경되었음을 인식할 수 있습니다. 이는 일반적으로 사용자가 네트워크에서 클라이언트 연결을 끊거나(예: 휴대폰에서 비행 모드를 활성화하여) 네트워크 신호가 없는 터널에 들어갈 때 발생합니다.
Web
사용자가 Web 클라이언트에 로그인하면 IM CVM은 사용자의 상태가 Online으로 변경되는 것을 실시간으로 감지할 수 있습니다.
다양한 종료/연결 해제 시나리오에서 상태 변경의 적시성은 다음과 같습니다.
페이지 닫힘을 실시간으로 감지할 수 있으며 사용자의 상태가 Offline으로 변경됩니다.
페이지가 닫히지 않으면 네트워크 연결 끊김이 감지되기까지 60s가 걸리며 사용자의 상태는 Offline으로 변경됩니다.
적극적으로 destroy API를 호출하는 것은 실시간으로 감지할 수 있으며 상태는 Offline으로 변경됩니다.
미니프로그램
사용자가 미니 프로그램 클라이언트에 로그인하면 IM CVM은 사용자의 상태가 Online으로 변경되는 것을 실시간으로 감지할 수 있습니다.
다양한 종료/연결 해제 시나리오에서 상태 변경의 적시성은 다음과 같습니다.
사용자가 종료하기 위해 오른쪽 상단 모서리를 클릭하면 Offline으로 상태가 변경되는 것을 5s 안에 감지할 수 있습니다.
사용자가 인터넷에서 클라이언트 연결을 끊으면(예: 전화에서 비행 모드를 활성화하여) Offline으로의 상태 변경이 감지되기까지 60s가 걸립니다.
적극적으로 destroy API를 호출하는 것은 실시간으로 감지할 수 있으며 상태는 Offline으로 변경됩니다.
멀티 디바이스 로그인
강제 오프라인
기본적으로 IM SDK는 멀티 디바이스 로그인(예: PC 및 Android 디바이스에서 동시 로그인)을 허용하지 않습니다. 대신 이전 온라인 디바이스를 강제로 오프라인으로 전환하고 마지막으로 로그인한 장치만 온라인 상태를 유지하도록 허용합니다. 강제 오프라인 로직에 대한 자세한 내용은 다음을 참고하십시오.
동시 접속
IM을 사용하면 콘솔에서 동시 접속 정책을 수정할 수 있습니다. 현재 다음 멀티 클라이언트 동시 접속 정책이 지원됩니다. 단일 플랫폼 로그인: 사용자는 Android, iPhone, iPad, Windows, Mac, Web 플랫폼에서만 온라인 상태일 수 있습니다.
듀얼 플랫폼 로그인: 사용자는 Android, iPhone, iPad, Windows, Mac 플랫폼과 Web 플랫폼에서 동시에 온라인 상태가 될 수 있습니다.
트리플 플랫폼 로그인: 사용자는 Android, iPhone 또는 iPad 플랫폼, Windows 또는 Mac 플랫폼 및 Web 플랫폼에서 동시에 온라인 상태일 수 있습니다.
멀티 플랫폼 로그인: 사용자는 Android, iPhone, iPad, Windows, Mac 및 Web 플랫폼에서 동시에 온라인 상태가 될 수 있습니다.
기본적으로 사용자는 각 플랫폼에 대해 하나의 장치에서만 온라인 상태가 될 수 있습니다(예를 들어, 하나의 Android 클라이언트는 다른 Android 클라이언트를 강제로 오프라인으로 전환함). 플래그십 버전 사용자의 경우 Android, iPhone, iPad, Windows 또는 Mac 플랫폼에서 로그인할 수 있는 최대 인스턴스 수를 구성할 수 있습니다. 또한 모든 사용자가 Web 플랫폼에서 로그인할 수 있는 최대 인스턴스 수를 구성할 수 있습니다.
동시 접속은 사용자 경험을 향상시키는 핵심 툴입니다. 사용자가 동일한 플랫폼에서 여러 장치에 로그인할 때 강제 로그아웃이 발생하지 않도록 특정 플랫폼에 대한 최대 동시 로그인 수를 구성할 수 있습니다.
설명:
‘동일한 플랫폼의 멀티 디바이스 동시 접속’ 기능은 IM 플래그십 버전에서만 사용할 수 있습니다. 플래그십 버전 구매 후 사용할 수 있습니다. 자세한 내용은 과금 개요를 참고하십시오.
)。
문제 해결에 도움이 되었나요?