메시지 처리 이력
여기서는 Photon Cloud가 채팅 메시지의 기록을 관리하는 방법과 채팅 클라이언트를 통해 이를 처리할 수 있는 방법에 대해 설명합니다.
공개 채널=
Photon Cloud는 채널이 존재하는 한 채널당 마지막으로 게시된 메시지를 유지합니다.
몇 초의 시간 초과 후 서버에서 빈 채널이 삭제됩니다. 모든 메시지가 정리됩니다.
기록을 유지하려면 Photon Chat WebHooks를 사용할 수 있습니다.
Photon Cloud는 공개 채팅 채널당 최대 100개의 메시지를 기록합니다.
채널을 구독할 때 채팅 클라이언트는 기록에서 수신할 메시지 수(있는 경우)를 설정할 수 있습니다.
historyLen
(messagesFromHistory
라고도 함) 파라미터 를 사용하여 수행됩니다:
- -1: 놓친 모든 메시지, 최대 100.
- 0: 없음. (기본)
- 1 >= x >= 100: 최대 x 개 까지 모든 놓친 메시지.
이는 특히 몇 개만 표시하려는 경우나 너무 많은 메시지를 한 번에 수신 및 처리하여 성능이 저하될 수 있다는 우려가 있는 경우 많은 것을 수신하지 않는 데 유용할 수 있습니다. - 다른 값은 허용되지 않습니다.
채널에 게시된 각 메시지에는 고유한 ID가 있습니다.
메시지 ID는 정수로, 1부터 시작하며, 새로운 메시지가 게시될 때마다 증가합니다.
채팅 채널은 기록이 제한되지만 서버는 채널당 채널에 게시된 마지막 메시지 ID를 추적합니다.
예: 사용자가 메시지 n° 573을 시간순으로 게시하는 경우 채널 생성 이후 모든 사용자의 모든 메시지를 카운트합니다.
- 게시된 메시지는 ID 573 을 가집니다
- 채널에는 이력에 100개의 메시지가 있습니다: MsgID=474 부터 MsgID=573 까지
- 채널은 마지막 Msg ID 를 573로 설정합니다.
클라이언트가 예기치 않은 연결 끊기에서 복구 중이고 동일한 채널에 다시 가입하거나, 플리케이션을 일시 중지한 후 클라이언트가 이전 채널로 돌아가는 경우, 서버로부터 '델타' 또는 '디프'만 수신하는 것이 좋습니다.
이전에 이미 받은 메시지를 받을 필요가 없습니다.
클라이언트가 없을 때 채널에 게시된 메시지만 수신해야 하며 누락된 메시지만 수신해야 합니다.
Photon Chat 클라이언트는 서버에 대한 마지막 메시지의 ID인 lastMsgId
(또는 동시에 여러 채널을 구독하는 경우 lastMsgID
) 매개 변수를 사용하여 서버에 알릴 수 있습니다.
이렇게 하면 서버가 해당 메시지 뒤에 게시된 메시지만 다시 보낼 수 있습니다(있는 경우).
이러한 메시지에는 전송된 lastMsgId
보다 큰 ID가 있습니다.
물론 사용자가 오랫동안 연결을 끊지 않고 이 부재 중에 게시된 메시지가 기록 메시지 용량을 초과하면 일부 메시지가 클라이언트에 전달되지 않습니다.
예: 동일한 채널에서 ID 218이 포함된 마지막 메시지를 수신한 후 사용자가 채널에서 구독을 취소합니다.
채널은 메시지 ID 603에 도달하며, ID가 504 ~ 603인 100개의 메시지를 기록합니다.
이때 동일한 사용자가 동일한 채널에 다시 가입하면 219 ~ 503 사이의 ID가 포함된 메시지를 누락하게 됩니다.
lastMsgId
를 올바르게 사용하기 위해서는 클라이언트가 채널당 수신된 마지막 메시지의 ID를 추적해야 합니다.
일부 클라이언트 SDK는 전체 애플리케이션 세션의 채널당 마지막 메시지 ID를 저장하고 노출할 수 있지만 필요한 경우 이러한 메시지 ID를 장치에 로컬로 캐시하거나 자신의 백엔드에서 유지해야 합니다.
마지막으로 누락된 메시지 있는 경우 있는 경우 모두(historyLen
= -1) 또는 특정 번호 (0 < historyLen
<= 100)를 수신하려면 채널당 historyLen
과 lastMsgId
를 결합할 수도 있습니다.
그러나 lastMsgId
가 있는 historyLen
== 0 는 말이 되지 않습니다.
예: 동일한 채널에서 ID가 777인 마지막 메시지를 수신한 후 사용자가 채널에서 구독을 취소합니다.
채널은 메시지 ID 801에 도달하고, ID가 702 ~ 801인 100개의 메시지를 기록합니다.
동일한 사용자가 동일한 채널에 다시 가입하고 lastMsgId
= 777 과 historyLen
= -1을 전송하비낟.
이 경우 서버는 ID가 778 ~ 801인 마지막 23개의 메시지를 다시 보냅니다.
비밀 채팅
Photon Chat을 사용하면 오프라인 사용자에게도 개인 메시지를 보낼 수 있습니다.
개인 메시지가 오프라인 사용자에게 전송되면 사용자가 연결하거나 발신인의 연결이 끊길 때까지 해당 메시지는 Photon Cloud에 유지됩니다.
Photon Cloud는 두 사용자 중 한 명이 연결되어 있는 한 모든 사용자 커플 간의 개별 대화에 대해 최대 100개의 메시지를 기록으로 유지합니다.
두 사용자의 연결이 끊기면 개인 대화가 삭제됩니다.