2016-05-08 8 views
0

Я использую API канала в своем приложении Java GAE. Он отлично работает после развертывания приложения. Я могу подключиться к серверу и получать сообщения от него в режиме реального времени. Я могу даже подключиться к новым каналам, когда истекает старый.Каналы GAE не работают через некоторое время

Однако, если я сохраняю свое приложение открытым в течение нескольких часов, этот пользователь больше не может подключаться к серверу. Я получаю 404 /_ah/channel/dev?command=connect&channel=XXX новое открытие канала.

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

Есть ли какое-либо другое решение, а не повторное развертывание приложения каждые несколько часов?

ответ

2

Маркер канала истекает через два часа, см here

Вы должны создать новый маркер для того же идентификатора клиента и создать новый канал, когда ошибка/закрытое состояние пожары на клиенте

+0

BTW I высоко рекомендовать экспоненциальную отсрочку в этой операции, с условием завершения, если ошибка на стороне клиента или сервера вызывает эпический объем запросов (и, следовательно, увеличение масштабов экземпляров) – Nick

+0

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

+0

Это довольно неприятно, но попробуйте это до (повторного) соединения: $ ("iframe # wcs-iframe"). Remove(); - Я не могу найти источник для этого, но я помню, что возникла проблема дублирования iframe, исходящего из виджета галстука/тупика, который проходит через каналы. Если это сработает для вас, я обновлю свой ответ – Nick