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 }