2012-03-06 2 views
1

Я использую API канала приложений с библиотекой gwt-gae-channel (v. 0.4) в GWT, и я пытаюсь проверить воссоздание канала, после expiration (т.е. onError вызывается с кодом 401).
Испытание:
- использовать метод GWT RPC для создания канала (clientID = и expiration = 1 минута) и получить необходимый токен: createTestChannel (useremail).
- вызов ChannelFactory.createChannel (маркер, новый ChannelCreatedCallback() {...}) и channel.open (новый MySocketListener() {...})
- когда OnError (...) называется (канал истекает) Я пытаюсь снова вызвать createTestChannel (useremail) (чтобы получить новый токен для того же идентификатора клиента) и открыть канал, но я всегда получаю вызовы onError() и onClose().
Если я обновляю страницу или открываю новую вкладку с тем же кодом, первое создание канала работает нормально, но после истечения каждого канала я не могу их воссоздать. Я также попробовал другой clientID, но он не будет работать.Appengine Java & GWT - Не удается воссоздать и открыть канал

ответ

0

Вы должны создать новый канал на сервере и получить новый токен. Из документов:

Токены истекают через два часа. Если клиент остается подключенным к каналу более двух часов, вызываются вызовы onerror() и onclose(). На этом этапе клиент может запросить XHR-запрос для запроса нового токена.

http://code.google.com/appengine/docs/java/channel/overview.html#Tokens_and_Security

+0

Когда канал закрыт, я называю тот же метод RPC createTestChannel (имя пользователя), ведьма создает канал и возвращает маркер. Но после того, как я получаю новый токен, я получаю onError() и onClose(), когда я пытаюсь открыть канал (и исключение на стороне сервера не выбрасывается). –

+0

Странно. Я должен оставить свое дело. – koma

+0

У меня такая же проблема. Также с библиотекой gwt-gae-channel. Я воссоздаю токен и получаю onError() и onClose() обратные вызовы. – Dominik

Смежные вопросы