Realm~App.Sync.동기화 세션

Atlas Device Sync 동기화 세션을 캡슐화하는 객체입니다. 세션은 클라이언트(및 디스크의 로컬 Realm 파일)와 서버 간의 통신을 나타냅니다. 세션은 항상 SDK에 의해 생성되고 다양한 API를 통해 판매됩니다. Realm과 연결된 세션의 수명은 managed 자동으로 됩니다.

config

해당 Realm이 구성된 구성의 동기화 부분을 가져옵니다.

유형:
object
상태

세션의 현재 상태를 가져옵니다. 둘 중 하나를 사용하면 됩니다.

  • "active": 동기화 세션이 Atlas App Services와 활발하게 통신하거나 통신을 시도 중입니다. 세션은 현재 연결되어 있지 않더라도 활성 상태로 간주될 수 있습니다. 세션이 온라인 상태인지 확인하려면 연결 상태를 확인합니다.
  • "inactive": 사용자가 로그아웃하거나 동기화가 일시 중지되어 동기화 세션이 Atlas App Services와 통신하려고 시도하지 않습니다.
  • "invalid": 동기화 세션에 복구할 수 없는 오류가 발생하여 영구적으로 유효하지 않습니다. 동기화를 계속하려면 새 세션을 만듭니다.
유형:
string
URL

이 세션이 연결된 Realm 객체 서버의 URL을 가져옵니다.

유형:
string
사용자

이 세션을 생성할 때 사용한 사용자를 가져옵니다.

유형:
User
addConnectionNotification(콜백)

세션 객체에 연결 알림을 등록합니다. Realm 객체 서버에 대한 기본 연결의 변경 사항에 대한 알림이 전송됩니다.

매개변수:
  • 콜백
    • 유형: callback(newState, oldState)
    • 다음 인수를 사용하여 호출됩니다.

      • newState - 연결의 새 상태
      • oldState - 연결이 전환된 상태입니다.
addProgressNotification(방향, 모드, 콜백)

세션 객체에 진행 알림 콜백 등록

매개변수:
  • 방향
    • 유형: string
    • 등록할 진행 방향입니다. 둘 중 하나를 사용하면 됩니다.

      • download - 다운로드 진행 상황 보고
      • upload - 보고서 업로드 진행 상황
  • 모드
    • 유형: string
    • 등록에 사용할 진행 상황 알림 모드입니다. 둘 중 하나를 사용하면 됩니다.

      • reportIndefinitely - 콜백이 등록 취소될 때까지 등록은 활성 상태로 유지됩니다.
      • forCurrentlyOutstandingWork - 현재 전송 가능한 바이트만 동기화될 때까지 등록이 활성화됩니다.
  • 콜백
    • 유형: callback(transferred, transferable)
    • 다음 인수를 사용하여 호출됩니다.

      • transferred - 이미 전송된 현재 바이트 수
      • transferable - 전송 가능한 총 바이트 수(이미 전송된 바이트 수에 전송 보류 중인 바이트 수를 더한 값)
connectionState()

서버에 대한 연결의 현재 상태를 가져옵니다. 여러 세션이 동일한 기본 연결을 공유할 수 있습니다. 이 경우 모든 연결 변경 사항이 모든 세션에 전송됩니다.

둘 중 하나를 사용하면 됩니다.

  • Realm.App.Sync.ConnectionState.Disconnected: 서버에 연결할 수 없습니다.
  • Realm.App.Sync.ConnectionState.Connecting: 서버 연결 시도가 진행 중입니다.
  • Realm.App.Sync.ConnectionState.Connected: 서버에 대한 연결이 활성화되었으며 데이터를 동기화할 수 있습니다.

이 메서드가 Connected 을 반환하고 state()Active 또는 Dying 을 반환하는 경우에만 데이터가 Realm ObjectServer와 동기화됩니다.

downloadAllServerChanges(타임아웃)

이 메서드는 알려진 모든 원격 변경 사항이 Realm에 다운로드되어 적용되거나 지정된 시간 제한에 도달할 때까지 성공적으로 해결되지 않는 프로미스를 반환합니다. 이 메서드가 시간 초과되더라도 다운로드는 여전히 백그라운드에서 계속됩니다.

이 메서드는 Realm이 열기 전에는 호출할 수 없습니다.

매개변수:
  • 타임아웃
    • Promise가 거부되기 전에 대기할 최대 시간(밀리초)입니다. 시간 초과를 지정하지 않으면 메서드는 영원히 대기합니다.

isConnected()

세션이 현재 활성화되어 있고 서버에 연결되어 있으면 true 를 반환하고, 그렇지 않으면 false 을 반환합니다.

일시 중지()

동기화 세션을 일시 중지합니다.

이 메서드는 비동기식이므로 세션이 시작되었는지 확인하려면 addConnectionNotification 을(를) 사용하여 연결 알림을 추가해야 합니다.

이 메서드는 멱등성이 있으므로 세션이 이미 일시 중지된 경우 작동하지 않습니다.

removeConnectionNotification(콜백)

이전에 addStateNotification에 등록된 상태 알림 콜백의 등록을 취소합니다. 동일한 콜백으로 함수를 여러 번 호출해도 무시됩니다.

매개변수:
  • 콜백
    • 유형: callback(oldState, newState)
    • 이전에 등록된 상태 콜백.

removeProgressNotification(콜백)

이전에 addProgressNotification에 등록된 진행 알림 콜백의 등록을 취소합니다. 동일한 콜백으로 함수를 여러 번 호출해도 무시됩니다.

매개변수:
  • 콜백
    • 유형: callback(transferred, transferable)
    • 이전에 등록된 진행률 콜백

재개()

일시 중지된 동기화 세션을 재개합니다.

이 메서드는 비동기식이므로 세션이 시작되었는지 확인하려면 addConnectionNotification 을(를) 사용하여 연결 알림을 추가해야 합니다.

이 메서드는 멱등성이 있으므로 세션이 이미 시작된 경우 작동하지 않습니다.

UploadAllLocalChanges(타임아웃)

이 메서드는 알려진 모든 로컬 변경 사항이 서버에 업로드되거나 지정된 시간 제한에 도달할 때까지 성공적으로 해결되지 않는 프로미스를 반환합니다. 이 메서드가 시간 초과되더라도 업로드는 백그라운드에서 계속 진행됩니다.

이 메서드는 Realm이 열기 전에는 호출할 수 없습니다.

매개변수:
  • 타임아웃
    • Promise가 거부되기 전에 대기할 최대 시간(밀리초)입니다. 시간 초과를 지정하지 않으면 메서드는 영원히 대기합니다.