Синхронизируйте чат через несколько окон / вкладок, используя AppEngine Channel API - PullRequest
5 голосов
/ 10 февраля 2011

Я разрабатываю приложение для чата поверх API канала Google AppEngine, и одна из задач заключается в координации / синхронизации чата при работе в нескольких окнах / вкладках (в одном браузере).

В частности, если у пользователя есть разговор, открытый в одном окне / вкладке, а затем открывающий новое окно / вкладку, которая подключается к моему веб-сайту, я хотел бы, чтобы этот же разговор появился в новом окне / вкладке (это это функциональность чата Facebook и других веб-сайтов). Я считаю, что этого можно достичь, открывая новый канал для каждого окна, которое пользователь открыл, и позволяя серверу обеспечить, чтобы каждый канал имел самые последние данные разговора, но я обеспокоен нарушением ограничения (если есть один) по количеству каналов, разрешенных API-интерфейсом канала, и также обеспокоен эффективностью этого подхода.

Итак, мой вопрос: 1) Имеет ли смысл открывать новый канал для каждого окна / вкладки для одного пользователя с точки зрения эффективности / результативности? 2) Есть ли какое-либо ограничение на количество каналов, которые я могу открыть одному пользователю? 3) есть ли общий лимит на количество каналов, которые я могу открыть? 4) есть ли какой-то другой, более разумный способ достижения моих целей (возможно, с помощью файлов cookie или каким-либо образом разделить данные из одного канала между несколькими окнами / вкладками)?

Спасибо и всего наилучшего Алекс

Ответы [ 2 ]

0 голосов
/ 04 марта 2013

возможно, вам следует использовать sessionStorage, он имеет событие прослушивания для записи, все вкладки с одинаковым происхождением получают событие!

0 голосов
/ 01 августа 2011
  1. Не совсем.

  2. номер

  3. http://code.google.com/intl/ro/appengine/docs/quotas.html Прочтите раздел «Канал».

  4. Да, вы можете использовать куки.

...