diff --git a/Sources/Punchnet/SDLSuperClient.swift b/Sources/Punchnet/SDLSuperClient.swift index 350de99..4688351 100644 --- a/Sources/Punchnet/SDLSuperClient.swift +++ b/Sources/Punchnet/SDLSuperClient.swift @@ -98,13 +98,16 @@ actor SDLSuperClient { } // --MARK: 心跳机制 -// group.addTask { -// while !Task.isCancelled { -// await self.ping() -// try await Task.sleep(nanoseconds: 5 * 1_000_000_000) -// } -// NSLog("[SDLSuperClient] heartbeat cancelled") -// } + group.addTask { + while true { + try Task.checkCancellation() + await self.ping() + try Task.checkCancellation() + try await Task.sleep(nanoseconds: 5 * 1_000_000_000) + try Task.checkCancellation() + } + NSLog("[SDLSuperClient] heartbeat cancelled") + } try await group.waitForAll() NSLog("[SDLSuperClient] group closed")