ConnectionFailedException: сбой подключения Websocket

Я использую приложение iOS, подключающееся к серверу через соединение через веб-сокет, используя клиентскую библиотеку JavaScript на стороне клиента Kaazing Web socket (версия JMS).

Я использую Phonegap для своего приложения для iOS и могу протестировать его как на Chrome, так и на симуляторе iOS. Примерно в 30% случаев я получаю сообщение об ошибке подключения при тестировании библиотеки на Chrome и 70% при тестировании на симуляторе / устройстве iOS. Я получаю Исключение, которое выдается в минимизированной библиотеке js, в которой просто говорится: "ConnectionFailedException: сбой подключения Web socket" Похоже, что это проблема браузера, но я ничего не могу с этим поделать.

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

2014-03-05 08: 09: 23,670 [NioProcessor-15] DEBUG session.revalidate - время ожидания авторизации WebSocket не настроено, поэтому период повторной проверки не может быть определен.
2014-03-05 08: 09: 23,670 [NioProcessor-15] INFO session.revalidate - Сеанс WebSocket [176128] не проходит повторную проверку, поскольку для согласованного расширения "x-kaazing-http-revalidate" не было задано время ожидания,

Кто-нибудь есть идеи по этому поводу x-kaazing-http-revalidate и если нет, то как правильно отлаживать эти соединения Web socket?

1 ответ

Решение

Полный отказ от ответственности, я работаю в Kaazing.

x-kaazing-http-revalidate является расширением Kaazing HTTP, согласованным при установлении соединения WebSocket. Это делается путем установки таймаута авторизации в файле gateway-config.xml (пример файла конфигурации, который мы отправляем). Целью этого расширения является периодическая повторная проверка авторизации пользователя, поскольку права могут меняться в течение продолжительного времени соединения.

ConnectionFailedException : WebSocket connection failed может произойти, если некоторые посредники / прокси-серверы, связанные с поставщиками услуг, внедрили неизвестный или подозрительный заголовок / заголовки в запросе соединения WebSocket. Если введенный заголовок является неизвестным / подозрительным, то шлюз Kaazing не завершит соединение, чтобы не допустить подслушивания злоумышленниками. Использование безопасного соединения TLS/SSL должно решить проблемы, связанные с посредником.

Для отладки и настройки безопасного клиента JavaScript, пожалуйста, следуйте инструкциям из документации. Вы также можете использовать WebSocket-debug.js вместо WebSocket.js с тегами сценария в файле jms-javascript.html для дополнительной регистрации. Существует также пошаговое руководство: развертывание JMS-приложения на JavaScript в качестве гибридного приложения для iOS.

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