RLMSyncTimeoutOptions

Objective-C

@interface RLMSyncTimeoutOptions : NSObject

Swift

@_nonSendable(_assumed) class RLMSyncTimeoutOptions : NSObject

用于在同步客户端中配置超时和时间间隔的选项。

  • 允许完全建立连接的最大毫秒数。 这包括解析网络地址、TCP 连接操作、SSL 握手和 WebSocket 握手的时间。

    默认为 2 分钟。

    声明

    Objective-C

    @property (nonatomic) NSUInteger connectTimeout;

    Swift

    var connectTimeout: UInt { get set }
  • 放弃所有会话后保持连接打开状态的毫秒数。

    关闭给定服务器的所有同步 Realm 后,连接将保持打开状态,直到延迟时间到期,以避免关闭并重新打开 Realm 时重新建立连接的开销。

    默认为 30 秒。

    声明

    Objective-C

    @property (nonatomic) NSUInteger connectionLingerTime;

    Swift

    var connectionLingerTime: UInt { get set }
  • 每个 heartbeat 网络探测(ping)消息之间的毫秒数。

    客户端会定期向服务器发送网络探测(ping)消息,以检查连接是否仍然有效。更短的周期可以提高连接状态更改通知的响应速度,但会牺牲电池寿命(因为必须更频繁地唤醒天线)。

    默认为 1 分钟。

    声明

    Objective-C

    @property (nonatomic) NSUInteger pingKeepalivePeriod;

    Swift

    var pingKeepalivePeriod: UInt { get set }
  • 在断定连接已断开之前等待心跳 ping 响应的时间(以毫秒为单位)。

    较短的值将使连接状态更改通知的响应速度更快,因为它只会在经过这么多时间后变为disconnected ,但当服务器只是需要很长时间来响应时,过短的值可能会导致虚假的断开连接通知。

    默认为 2 分钟。

    声明

    Objective-C

    @property (nonatomic) NSUInteger pongKeepaliveTimeout;

    Swift

    var pongKeepaliveTimeout: UInt { get set }
  • 自先前连接丢失以来,新连接被视为“快速重新连接”的最长时间(以毫秒为单位)。

    当客户端首次连接到服务器时,它会推迟上传任何本地更改,直到从服务器下载了所有更改集。 这通常会减少必须完成的合并总量,并且在特定客户端首次连接到服务器时特别有益。

    当现有客户端断开连接,然后在“事实重新连接”时间内重新连接时,此过程将被跳过,任何本地更改都会立即上传,而无需等待下载,就像客户端始终在线一样。

    默认为 1 分钟。

    声明

    Objective-C

    @property (nonatomic) NSUInteger fastReconnectLimit;

    Swift

    var fastReconnectLimit: UInt { get set }