2012-06-02 2 views
0

Как узнать, зарегистрирован ли пользователь в вашем приложении Google App Engine?Пользователь онлайн-пользователя приложения GAE

Приложение позволяет пользователям просматривать профиль других пользователей. Если просматриваемый профиль также использует или регистрируется в приложении, я хочу получить уведомление о том, что просмотренный профиль подключен к сети.

Как достичь этих требований?

ответ

1

Если вы управляете профилями пользователей, то знаете, когда пользователь входит в систему. В конце процесса входа в систему просто сохраните информацию входа пользователя в memcache. После этого вы сможете проверить, вошел ли пользователь в систему, просто выполнив поиск в вашем memcache.

Этот способ легко поймать и отслеживать события соединения, но вы также должны реагировать, когда пользователь отключается, чтобы обновить свой список. Для этого вы можете использовать канал. См. google documentation.

1

Вы можете, как предлагает Гаэль, использовать Channel API, чтобы отследить это, но это, вероятно, перебор. Если вы хотите пройти этот маршрут, просто прослушайте подключенные сообщения & и обновите поле в db, которое указывает, что пользователь выполнил вход.

Менее дорогой маршрут может состоять в том, чтобы просто обновить поле в вашем запись пользователя, что-то вроде «в последний раз, когда этот пользователь запросил страницу». Если было больше n минут с момента последнего запроса пользователем страницы, предположите, что они вышли из системы. В самом деле, вы могли бы даже сделать это в memcache с картой от userid до последнего времени доступа.

Речь идет о том, что вы хотите делать с информацией о «подписанном»: если вы просто хотите дать общее представление о том, находится ли пользователь вокруг или сколько пользователей в сети, используя решение хранилища данных или memcache, вероятно, хорошо. С другой стороны, если вы хотите отразить присутствие пользователя, чтобы они могли реагировать, например. IM, тогда вам, вероятно, понадобится API канала в любом случае, чтобы вы могли немедленно доставить им сообщения.

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