Я пишу небольшое одноранговое приложение для чата Bluetooth.В настоящее время я делаю следующее:
let thread = Thread(block: { [weak self] in
guard let `self` = self else { return }
self.channel.inputStream.delegate = self
self.channel.inputStream.schedule(in: .current, forMode: .defaultRunLoopMode)
self.channel.inputStream.open()
self.channel.outputStream.delegate = self
self.channel.outputStream.schedule(in: .current, forMode: .defaultRunLoopMode)
self.channel.outputStream.open()
RunLoop.current.run()
})
thread.start()
Где self.channel
равно CBL2CAPChannel
Проблема, с которой я сейчас сталкиваюсь, заключается в том, что она генерирует новый поток для каждой пары каналов, и в конечном итоге их становится слишком много.
Как правильно настроить CBL2CAPChannel
с в этом случае?Документы Apple используют основной поток для этого, что является неожиданным и может привести к проблемам при большом количестве соединений.