Structure
Revue.NetworkOptions
網路選項
nonisolated struct NetworkOptionsTransport flag 的 hard deny 語意(core 0.18.0 起,issue #102)
下方三個 transport flag 設 false 的語意在 0.18.0 擴張為雙向封鎖: 除了本端不主動走該路徑,對端經該路徑送來的封包也會在解密前丟棄, 且 RemoteParticipant 的 paths bitmap 對應位元恆為 0、不再產生該 path 的狀態變化事件。0.17 及之前只擋出向、入向照收(還會把該位元點亮)。
三者皆為 init-time 唯讀:無 runtime setter,要改必須 destroy() 後重新 initialize(_:)。
⚠️ 雙方 flag 逐位 AND 為全 0 的一對使用者永久不可達,且 SDK 不提供專屬 事件或錯誤碼 —— 表現為「對方永遠離線」。升級時應全 fleet 先升上 0.18.0 並 維持三旗全開,確認升完後再逐一收緊。
⚠️ 兩種矛盾組合會讓 initialize(_:) 直接失敗(C 層回 REVUEKIT_ERR_INVALID_TRANSPORT_CONFIG(-32),不建立任何 instance): ① 三個 flag 全 false;② switchAEnabled == true 且兩個 relay flag 皆 false。
Topics
Initializers
Instance Properties
var enableTcpRelay: Bool啟用 TCP 中繼
var enableUdpDirect: Bool啟用 UDP 直連(P2P hole punching)
var enableUdpRelay: Bool啟用 UDP 中繼
var endPort: UInt16端口範圍結束(0 = 使用 toxcore 預設 33545)
var ipv6Enabled: Bool啟用 IPv6
var localDiscoveryEnabled: Bool啟用區網探索
var startPort: UInt16端口範圍起始(0 = 使用 toxcore 預設 33445)
var switchAEnabled: BoolSwitch A:直連切換遲滯保護(v0.15.0)
var switchAGracePeriodMs: UInt32Switch A 寬限期(毫秒)
var switchBEnabled: BoolSwitch B:直連可見性寬限期(v0.15.0)
var switchBGracePeriodMs: UInt32Switch B 寬限期(毫秒),語意同
switchAGracePeriodMs,與 Switch A 各自獨立計時