Повторное подключение API канала GAE

Я работаю над приложением чата поверх GAE и его Channel API. Я изучил документ и предоставленные примеры, а также просмотрел некоторые ответы здесь, но все же не чувствую, что у меня есть полная картина механики clientId/token.

1). Токен выдается на 2 часа, поэтому, когда он истечет, я должен запросить новый. Я также получу отключение в моем обработчике с параметром идентификатора клиента. Значит ли это, что в этот момент канал закрыт, и, запрашивая новый токен, я фактически создаю новый канал? Так что даже не имеет значения, какой идентификатор клиента я могу использовать в этот момент, старый или совершенно новый? Также GAE будет считать это созданием нового канала?

2). Если пользователь уходит с моей страницы до истечения срока действия токена (я получу присутствие отключения). А потом возвращается (все еще в этом двухчасовом окне), могу ли я снова подключить его к тому же каналу со старым токеном (допустим, они у меня есть в файлах cookie)? Если да, то GAE не считает это созданием нового канала?

3). Если ответ на приведенный выше вопрос утвердительный, то могу ли я собирать отсоединенные идентификаторы и токены клиентов на стороне сервера и распределять их для новых подключенных клиентов. В этом сценарии, если пользователь вернется на мою страницу, а его старый идентификатор/токен клиента уже используется кем-то другим, он просто получит еще одну пару из пула. Или это место, где вступает в силу правило «один канал на странице»?

Заранее спасибо и удачи, Алексей


person Megas    schedule 22.01.2012    source источник


Ответы (1)


Ответы:

1) Да, независимо от того, повторно используете ли вы существующий идентификатор клиента или новый, с вас будет взиматься плата за создание нового канала.

2) Да, вы можете повторно подключиться с существующим токеном, и с вас не будет взиматься плата за создание нового канала. Вызов create_channel на сервере — это тот, который стоит; все, что вы делаете на клиенте, бесплатно.

3) Вы могли бы сделать это. Имейте в виду, что если у вас есть несколько клиентов, пытающихся подключиться с одним и тем же токеном, вы получите непредсказуемые результаты.

Надеюсь, это поможет!

person Moishe Lettvin    schedule 22.01.2012
comment
Относительно 2) и 3) см. эту страницу документации. . По сути, если соединение обрывается, вам нужно выпустить новый токен. Повторное использование токена по сути аналогично тому, как несколько клиентов используют один и тот же токен. - person westmark; 23.01.2012
comment
@westmark: хм, я вижу противоречие с ответом Мойше, который знает из первых рук о gae и API канала, и я не вижу на этой странице ничего, что могло бы доказать вашу точку зрения ... - person Megas; 25.01.2012
comment
@Megas Я помню, как когда-то возился с API канала, и как только пользователь потерял соединение, нужно было сгенерировать новый токен. Channel API отказался переподключаться со старым токеном. Может быть, что-то изменилось с тех пор. Думаю, Мойша знает свое дело, не обращайте внимания на мой предыдущий комментарий :) - person westmark; 27.01.2012