메시지 처리 이력

여기서는 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)를 수신하려면 채널당 historyLenlastMsgId 를 결합할 수도 있습니다. 그러나 lastMsgId 가 있는 historyLen == 0 는 말이 되지 않습니다.

: 동일한 채널에서 ID가 777인 마지막 메시지를 수신한 후 사용자가 채널에서 구독을 취소합니다. 채널은 메시지 ID 801에 도달하고, ID가 702 ~ 801인 100개의 메시지를 기록합니다. 동일한 사용자가 동일한 채널에 다시 가입하고 lastMsgId = 777 과 historyLen = -1을 전송하비낟. 이 경우 서버는 ID가 778 ~ 801인 마지막 23개의 메시지를 다시 보냅니다.

Back To Top

비밀 채팅

Photon Chat을 사용하면 오프라인 사용자에게도 개인 메시지를 보낼 수 있습니다. 개인 메시지가 오프라인 사용자에게 전송되면 사용자가 연결하거나 발신인의 연결이 끊길 때까지 해당 메시지는 Photon Cloud에 유지됩니다.

Photon Cloud는 두 사용자 중 한 명이 연결되어 있는 한 모든 사용자 커플 간의 개별 대화에 대해 최대 100개의 메시지를 기록으로 유지합니다. 두 사용자의 연결이 끊기면 개인 대화가 삭제됩니다.

기술문서 TOP으로 돌아가기