Сообщение GAE Channel API транслируется только одному клиенту?

Недавно я пытался изучить API каналов Google App Engine.

Я пытался сделать простое приложение для чата, но у меня возникли проблемы.

Это вообще то, что я сделал.

сервер открывает статический канал:

token = channel.create_channel('bigboys')

клиент js подключается к каналу с помощью:

var channel = new goog.appengine.Channel(token)

Я не использую пользователей Google App Engines. Я не хочу, чтобы клиенты должны были войти в систему.

Итак, моя проблема в том, что приложение чата на самом деле не работает, только один клиент может присоединиться к каналу. Я знаю, что существует один идентификатор клиента для каждого правила канала. Итак, как мне поддерживать несколько клиентов в одном «чате»?


person AlexCheuk    schedule 13.04.2012    source источник


Ответы (1)


Думайте о канале как о соединении между одним клиентом (браузером) и вашим сервером.

Если у вас есть чат, вам понадобится канал для каждого клиента. Вам понадобится что-то на стороне сервера, чтобы отслеживать всех клиентов в чате и канал для каждого клиента. Когда вы отправляете сообщение, вам нужно отправить его на каждый клиентский канал в чате.

person dragonx    schedule 13.04.2012
comment
ЛАДНО. это имеет больше смысла, чем то, что я интерпретировал - person AlexCheuk; 13.04.2012
comment
Итак, каков оптимальный способ отследить всех клиентов, прослушивающих «трансляцию»? Вы бы сохранили их в Memcache? Хранилище данных? - person Chuck; 11.03.2013
comment
У меня был бы объект в хранилище данных для «трансляции», в котором хранится список всех клиентов. Будет использовать memcache для уменьшения количества обращений к хранилищу данных (ndb делает это автоматически). - person dragonx; 12.03.2013