diff --git a/ios/Runner/Handlers/StatsEventHandler.swift b/ios/Runner/Handlers/StatsEventHandler.swift index b1e504c3..6b91ec44 100644 --- a/ios/Runner/Handlers/StatsEventHandler.swift +++ b/ios/Runner/Handlers/StatsEventHandler.swift @@ -28,7 +28,7 @@ public class StatsEventHandler: NSObject, FlutterPlugin, FlutterStreamHandler, L self.events = events let opts = LibboxCommandClientOptions() opts.command = LibboxCommandStatus - opts.statusInterval = 300 + opts.statusInterval = Int64(NSEC_PER_SEC) commandClient = LibboxCommandClient(self, options: opts) try? commandClient?.connect() return nil @@ -40,7 +40,7 @@ public class StatsEventHandler: NSObject, FlutterPlugin, FlutterStreamHandler, L } public func writeStatus(_ message: LibboxStatusMessage?) { - guard + guard let message else { return } let data = [ @@ -51,11 +51,7 @@ public class StatsEventHandler: NSObject, FlutterPlugin, FlutterStreamHandler, L "uplink-total": message.uplinkTotal, "downlink-total": message.downlinkTotal ] as [String:Any] - guard - let json = try? JSONSerialization.data(withJSONObject: data), - let json = String(data: json, encoding: .utf8) - else { return } - events?(json) + events?(data) } } diff --git a/lib/singbox/service/platform_singbox_service.dart b/lib/singbox/service/platform_singbox_service.dart index aeeb1d9e..12cc5f70 100644 --- a/lib/singbox/service/platform_singbox_service.dart +++ b/lib/singbox/service/platform_singbox_service.dart @@ -194,7 +194,9 @@ class PlatformSingboxService with InfraLogger implements SingboxService { if (event case Map _) { return SingboxStats.fromJson(event); } - loggy.error("[stats client] unexpected type, msg: $event"); + loggy.error( + "[stats client] unexpected type(${event.runtimeType}), msg: $event", + ); throw "invalid type"; }, );