Невозможно создать 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 ответ

Я понял

https://developer.apple.com/documentation/foundation/url_loading_system/downloading_files_in_the_background

Соблюдайте ограничения фоновой передачи

В фоновых сеансах фактическая передача выполняется процессом, который отделен от процесса вашего приложения. Поскольку перезапуск процесса вашего приложения довольно дорогостоящий, некоторые функции недоступны, что приводит к следующим ограничениям:

  • Сеанс должен предоставить делегата для доставки события. (Для выгрузки и выгрузки делегаты ведут себя так же, как и для внутрипроцессных передач.)

  • Поддерживаются только протоколы HTTP и HTTPS (без пользовательских протоколов).

  • Перенаправления выполняются всегда. В результате, даже если вы реализовали urlSession(_:task:willPerformHTTPRedirection:newRequest:completionHandler:), он не вызывается.

  • Поддерживаются только задачи загрузки из файла (загрузка из экземпляров данных или потока завершается ошибкой после выхода из приложения).

Другие вопросы по тегам