fix SuperClient
This commit is contained in:
parent
b984f7e4e9
commit
4ce3547c7c
@ -17,8 +17,6 @@ actor SDLSuperClient {
|
||||
|
||||
private var state: State = .idle
|
||||
|
||||
private let frameParser: SDLSuperFrameParser
|
||||
|
||||
private let queue = DispatchQueue(label: "com.sdl.SuperClient.queue") // 专用队列保证线程安全
|
||||
|
||||
// 数据流
|
||||
@ -29,9 +27,10 @@ actor SDLSuperClient {
|
||||
private var readTask: Task<Void, Never>?
|
||||
|
||||
private let connection: NWConnection
|
||||
private let maxBufferSize: Int
|
||||
|
||||
init(serverEndpoint: SDLConfiguration.ResolvedServerEndpoint, port: UInt16, maxBufferSize: Int = 2 * 1024 * 1024) {
|
||||
self.frameParser = SDLSuperFrameParser(maxBufferSize: maxBufferSize)
|
||||
self.maxBufferSize = maxBufferSize
|
||||
|
||||
let pairs = AsyncThrowingStream.makeStream(of: SDLQUICInboundMessage.self)
|
||||
self.messageStream = pairs.stream
|
||||
@ -117,11 +116,12 @@ actor SDLSuperClient {
|
||||
self.readTask?.cancel()
|
||||
|
||||
self.readTask = Task {
|
||||
let frameParser = SDLSuperFrameParser(maxBufferSize: self.maxBufferSize)
|
||||
do {
|
||||
while true {
|
||||
try Task.checkCancellation()
|
||||
let data = try await Self.readOnce(connection: self.connection)
|
||||
let frames = try self.frameParser.parseFrames(data: data)
|
||||
let frames = try frameParser.parseFrames(data: data)
|
||||
for frame in frames {
|
||||
try Task.checkCancellation()
|
||||
if let message = SDLSuperCodec.decode(frame: frame) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user