Невозможно создать URLSessionWebSocketTask с фоновой конфигурацией - PullRequest
0 голосов
/ 25 сентября 2019

ошибка: выполнение было прервано, причина: сигнал SIGABRT.Процесс был оставлен в том месте, где он был прерван, используйте «поток возврата -x», чтобы вернуться в состояние до вычисления выражения.

Я пытаюсь создать URLSessionWebSocketTask с настройкой backdroundна детской площадке, но, к сожалению, я получаю вышеупомянутую ошибку

import Foundation

let urlSession = URLSession(configuration: .background(withIdentifier: "___ID___"))
let webSocketTask = urlSession.webSocketTask(with: URL(string: "wss://echo.websocket.org")!)

1 Ответ

0 голосов
/ 25 сентября 2019

Я понял,

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

Соответствует ограничениям фоновой передачи

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

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

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

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

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

...