StarScream websocketDidReceivePong не вызывается для записи Ping
Я хотел бы периодически отправлять запросы на сервер, чтобы поддерживать соединение.
Это функция для отправки пинга
socket.writePing(NSData())
Но я не получаю понг обратно
func websocketDidReceivePong(socket: WebSocket){
wsConsole.text = wsConsole.text .stringByAppendingString("\n websocket received pong")
}
вышеупомянутый делегат будет уволен, когда сервер отправит обратно понг.
К вашему сведению: я могу успешно установить веб-сокет соединиться, отправить сообщение и закрыть соединение, и я реализовал, и я дал socket.delegate=self
WebSocketPongDelegate
Вот URL веб-сокета, который я использую для тестирования
WS://echo.websocket.org/
Мне интересно, почему я не получаю понг от сервера веб-сокетов.
1 ответ
Является ли ваш сокет свойством класса, чтобы убедиться, что он остаётся? Если вы разместите его только в стеке функций, он выпадет из области видимости, и делегаты никогда не будут вызваны. Так же pongDelegate
отделен от обычного делегата, так что вам нужно также установить это для себя:
socket.pongDelegate = self