- RevueSDK
- Revue
Class
Revue
朋友層 singleton — SDK 入口點,管理好友關係、事件輪詢、delegate 推送
@MainActor class RevueOverview
Revue.shared 是生命週期最長的 singleton(App 啟動就存在), 擁有 core loop(coreQueue serial queue)—— 單一迴圈依序驅動 revuekit_iterate 與事件輪詢/路由,間隔由 revuekit_iteration_interval() 動態決定。destroy 亦排在同一條 queue,確保與 iterate 不重疊(toxcore 契約: 同一 instance 任何時刻最多一個 API 函式運作)。
所有方法和屬性必須在 Main Thread 存取(@MainActor 強制)。
Topics
Structures
struct BootstrapNodeBootstrap 節點
struct ConfigurationSDK 初始化設定
struct DestroyOptionsdestroy(_:)的選項:關閉 SDK 時一併刪除哪些 SDK 寫到硬碟的資料struct MqttOptionsMQTT / presence connection settings (mirrors core
RevueKitMqttOptions; same shape as AndroidMqttOptions).struct NetworkOptions網路選項
Instance Properties
var connectionState: SelfConnectionStatus自身 DHT 連線狀態
let delegates: MulticastDelegate<any RevueDelegate>多播代理(朋友層事件)
let friends: FriendManager好友管理器
var logLevel: Set<RevueLogLevel>The SDK log levels selected now.
var logPublisher: AnyPublisher<RevueLogEntry, Never>SDK log 流(v0.13.0-rc1 新增)
let presence: PresenceManagerPresence 管理器
var revueAddress: String自身 Revue Address(用於加好友,初始化後可用)
var revueId: String自身 Revue ID(Base58 公鑰,初始化後可用)
var selfName: String自身名稱(初始化後可用)
var selfStatus: UserStatus自身使用者狀態(初始化後可用)
var selfStatusMessage: String自身狀態訊息(初始化後可用)
Instance Methods
func destroy(DestroyOptions) async銷毀 SDK(離開房間 + 清除 delegates + 停止 core loop + 銷毀 C 實例), 再依
options刪除 SDK 寫到硬碟的資料func initialize(Revue.Configuration) throws初始化 SDK(建立 C 實例 + bootstrap + 啟動 core loop)
func setLogLevel(Set<RevueLogLevel>)Choose which SDK log levels are output. Takes effect at once.
func setSelfName(String) -> Bool設定自身名稱
func setSelfStatus(UserStatus) -> Bool設定自身使用者狀態(UserStatus:none / away / busy)
func setSelfStatusMessage(String) -> Bool設定自身狀態訊息(個人簽名)
func startPresence(MqttOptions?) async throwsStart presence, or replace the running connection with new settings.
func stopPresence() asyncStop presence, for example when the user signs out. Calls and friend connections are not affected.
Type Properties
Type Methods
static func getCoreVersion() -> String取得 revuekit-c 核心版本字串(例:「0.11.0」)
static func getVersion() -> String取得自己版本