Почему в консоли Xcode возникает ошибка "рукопожатия"?
2015-08-01 22:30:43.893 MyApp[2425:284133] ERROR: handshake failed ... The request timed out.
2015-08-01 22:30:43.896 MyApp[2425:284133] ERROR: handshake failed ... The request timed out.
2015-08-01 22:30:43.899 MyApp[2425:284133] ERROR: handshake failed ... The request timed out.
2015-08-01 22:30:43.912 MyApp[2425:284133] ERROR: handshake failed ... The request timed out.
2015-08-01 22:30:43.913 MyApp[2425:284133] ERROR: handshake failed ... The request timed out.
2015-08-01 22:30:43.913 MyApp[2425:284133] ERROR: handshake failed ... The request timed out.
2015-08-01 22:30:43.914 MyApp[2425:284133] ERROR: handshake failed ... The request timed out.
2015-08-01 22:30:43.914 MyApp[2425:284133] ERROR: handshake failed ... The request timed out.
2015-08-01 22:30:43.915 MyApp[2425:284133] ERROR: handshake failed ... The request timed out.
2015-08-01 22:30:43.915 MyApp[2425:284133] ERROR: handshake failed ... The request timed out.
Я получаю это в случайные моменты. Как я могу проверить, какая инфраструктура/библиотека вызывает это? Он просто печатает в консоли Xcode.
Ответы
Ответ 1
Посмотрите, что это Question, похоже, очень похоже, вы используете библиотеку, использующую сервер websocket. Возможно, это очень быстро решит вашу проблему. Если нет, отправьте список библиотек, которые вы используете, и сформируйте код, в котором вы настроили сокет.
Ответ 2
В некоторых библиотеках вашего проекта может использоваться идентификация сокетов или SSL.
В моем случае я увидел такое же сообщение об ошибке handshake failed
, когда я попытался отправить push-уведомление на сервер APNS с неправильными сертификатами.
Невозможно найти, какую библиотеку или каркас распечатать на консоли.
Попробуйте удалить сторонние библиотеки, включенные в проект, до тех пор, пока сообщение об ошибке не появится.
Ответ 3
Я думаю, что вы используете сервер websocket для своего проекта. Вы должны запустить сервер socket.io. Вот почему xcode показывает эту ошибку.
См. эту аналогичную запись в stackoverflow
My Socket.io на IOS не удается установить связь с сервером websocket
Несколько раз, когда вы используете push-уведомление api, иногда происходит ошибка с подтверждением рукопожатия, поэтому прочтите эту документацию на яблоко для устранения проблем, если функция push-уведомления регистрирует эту ошибку Устранение неполадок с уведомлением приложения
Ответ 4
То, как я могу представить, может быть не лучшим решением для вас. И мой ответ работает на основе этих двух условий.
1.Вы должны комментировать почти все "println" в своем коде
2. вызов экземпляра "println" для отправки сообщения об ошибке
Затем вы можете установить "Символическую точку останова" в "Меню отладки → Точки останова → Создать символическую точку останова" и установить условие "println"
(Если модуль устарел, вам может потребоваться перерыв в "NSLog" или что-то в этом роде)
![введите описание изображения здесь]()
![введите описание изображения здесь]()
ссылка на то, как установить символическую точку останова: http://rshankar.com/debugging-swift-app-in-xcode/
Ответ 5
Тайм-ауты возникают, если api не отвечает в течение длительного времени, которое обычно устанавливается на 15, 30 или 60 секунд.
Ваши метки времени также разделены на секунду, что ясно говорит о том, что вы используете соединение сокета и, возможно, библиотеку для того же самого, что и является проблемой здесь. Проверьте библиотеку, которую вы используете. Это будет проблема с сервером.