iOS 13 URLSessionWebSocketTask Текущее состояние соединения - PullRequest
0 голосов
/ 16 февраля 2020

Мой URLSessionWebSocketDelegate настроен и реализован

urlSession(_ session: URLSession, webSocketTask: URLSessionWebSocketTask, didCloseWith closeCode: URLSessionWebSocketTask.CloseCode, reason: Data?)

Однако, кажется, что он попадает в делегат, только если сервер правильно отключился. Если соединение прерывается или сервер не предоставляет код отключения, функция делегата никогда не запускается. Я также попытался проверить свойства URLSessionWebSocketTask closeCode и closeReason до и после отключения, и они не изменятся, пока сервер не отправит правильный код отключения.

Пока я контролирую сервер и может быть уверен, что преднамеренные разъединения имеют код, что произойдет, если сетевое соединение прекратится? Или если сервер выйдет из строя? Я бы предположил, что функция-делегат должна по-прежнему вызываться.

Интересно то, что моя функция прослушивания выдает ошибку, и ошибка гласит следующее:

Error Domain=NSPOSIXErrorDomain Code=57 "Socket is not connected" UserInfo={NSErrorFailingURLStringKey=[urlomitted], NSErrorFailingURLKey=[urlomitted]

Итак хотя я мог бы вручную отсоединить сокет, если я вижу ошибку 57, я не знаю, является ли это исчерпывающим для всех различных вариантов разъединения.

Я думаю, что я либо делаю что-то не так, либо это ошибка, но Я не могу найти кого-то еще с такой же проблемой, поэтому я подумал, что я бы спросил, прежде чем отправлять радар.

...