Различия
Здесь показаны различия между двумя версиями данной страницы.
comet:faq:realtime-users-list [2016/10/18 15:58] levhav |
comet:faq:realtime-users-list [2019/12/18 02:05] |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | ====== Как реализовать список посетителей обновляющийся на "лету"? ====== | ||
- | Есть несколько возможных вариантов реализации. | ||
- | |||
- | Можно получить из комет сервера список авторизованных пользователей подписанных на какой то из каналов. | ||
- | |||
- | - Пользователь проходит [[comet:authentication|авторизацию на комет сервере]] | ||
- | - [[comet:javascript_api#подписка_на_получение_сообщений_из_канала|Подписывается на канал]] вида track_* (можно использовать любое название канала, например track_online или как угодно) | ||
- | - Вы запросом к CometQL api получаете [[comet:cometql#таблица_users_in_pipes|список авторизованных пользователей подписанных на канал]] (это уже список кто сейчас онлайн) | ||
- | |||
- | - Чтобы список пополнялся новыми пользователями в режиме реального времени то надо в js добавить обработчики на события subscription и unsubscription приходящие из канала track_online (или того на какой вы подписались) | ||
- | |||
- | ===== Получение списка пользователей онлайн ===== | ||
- | Запросом к CometQL api получаете [[comet:cometql#таблица_users_in_pipes|список авторизованных пользователей подписанных на канал]] | ||
- | <code> | ||
- | mysql> SELECT * FROM users_in_pipes WHERE name = "track_online"; | ||
- | </code> | ||
- | |||
- | |||
- | ===== Подписка на обновление списка пользователей онлайн ===== | ||
- | <code JavaScript> | ||
- | CometServer().subscription("track_online.subscription", function(msg) | ||
- | { | ||
- | // Обработка события что кто то зашёл на сайт и подписался на канал track_online | ||
- | }); | ||
- | CometServer().subscription("track_online.unsubscription", function(msg) | ||
- | { | ||
- | // Обработка события что кто то покинул сайт и/или отписался от канала track_online | ||
- | }); | ||
- | </code> |