Невозможно создать URLSessionWebSocketTask с фоновой конфигурацией
ошибка: выполнение было прервано, причина: сигнал SIGABRT. Процесс был оставлен в точке, где он был прерван, используйте "thread return -x", чтобы вернуться в состояние до вычисления выражения.
Я пытаюсь создать URLSessionWebSocketTask
с конфигурацией фона в Playground, но, к сожалению, я получаю вышеупомянутую ошибку
import Foundation
let urlSession = URLSession(configuration: .background(withIdentifier: "___ID___"))
let webSocketTask = urlSession.webSocketTask(with: URL(string: "wss://echo.websocket.org")!)
1 ответ
Я понял
Соблюдайте ограничения фоновой передачи
В фоновых сеансах фактическая передача выполняется процессом, который отделен от процесса вашего приложения. Поскольку перезапуск процесса вашего приложения довольно дорогостоящий, некоторые функции недоступны, что приводит к следующим ограничениям:
Сеанс должен предоставить делегата для доставки события. (Для выгрузки и выгрузки делегаты ведут себя так же, как и для внутрипроцессных передач.)
Поддерживаются только протоколы HTTP и HTTPS (без пользовательских протоколов).
Перенаправления выполняются всегда. В результате, даже если вы реализовали urlSession(_:task:willPerformHTTPRedirection:newRequest:completionHandler:), он не вызывается.
Поддерживаются только задачи загрузки из файла (загрузка из экземпляров данных или потока завершается ошибкой после выхода из приложения).