Как я могу видеть активность моих пользователей в Rails 3 в реальном времени? - PullRequest
3 голосов
/ 26 февраля 2011

То, что я хотел бы сделать, - это чтобы мой пользователь-администратор мог видеть - в режиме реального времени (через некоторую любезность AJAX / jQuery) - что делает мой пользователь.

Как мне это сделать??

Я предполагаю, что это как-то связано с активностью сеанса - и я начал сохранять сеанс в БД, а не в файл cookie.

Но, вообще говоря, как мне взять эту информацию?и проанализировать его в режиме реального времени?

Я посмотрел на свою таблицу сеансов и, кроме идентификаторов (id и session_id), я вижу поле «данных».В этом поле данных хранится хеш, который я не могу понять (выглядит как хэш md5).

Как бы я использовал это, чтобы увидеть, что пользователь A только что нажал на ссылку B, и сразу после этогоПользователь B нажал на ссылку A и т. Д.?

Есть ли драгоценный камень, кроме Рейкамола, который мог бы мне помочь?

Ответы [ 3 ]

4 голосов
/ 27 февраля 2011

Возможно, вы захотите проверить Mixpanel .Они просты в настройке и имеют то, что вы просите.

2 голосов
/ 26 февраля 2011

Данные сеанса содержат только значения, сохраненные в хеш-коде session[] от пользователя.Он не хранит информацию о том, какое действие / контроллер было вызвано, поэтому вы не знаете, какая «ссылка была нажата».

Получите активность ваших пользователей:

Помимо rackamole, у вас есть два вариантаИМХО.

  • Используйте before_filter в своем ApplicationController для хранения соответствующей информации, которая вас интересует. (Имя контроллера, действие или URI, дополнительные параметры и идентификатор зарегистрированногонапример, для пользователя).

  • Используйте AJAX-вызов внизу каждой страницы, который отправляет интересующую вас информацию (URI, идентификатор зарегистрированного пользователя и т. д.)на ваш сервер.Это позволяет быстрее получать ответы от сервера, так как информация сохраняется после того, как страница уже доставлена.Кроме того, вам не нужно использовать Rails-запрос для его хранения.AJAX-запрос также может вызывать простой PHP-скрипт для записи данных на диск.Это намного быстрее.

Сохранение этого действия:

Сохраните эти данные / информацию либо в базе данных, либо в файле журнала.База данных предоставит вам большую гибкость, например, отображение всех действий от одного пользователя или всех посетителей на одной странице и т. Д. Решение с лог-файлами повысит производительность.

Realtime vs. Oldschool:

Что касается извлечения собранных вами данных в режиме реального времени, вы должны создать собственное решение.Чтобы сделать это элегантно (без запроса вашего сервера раз в секунду, чтобы посмотреть, поступили ли новые данные), вам понадобится другой серверный процесс. Поиск AJAX Push для получения дополнительной информации.

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

Чтобы отслеживать активность на вашем сайте, должно быть достаточно иметь страницу со списком последних действий и обновлять ее вручную (или обновлять автоматически каждые десять секунд).

1 голос
/ 18 марта 2011

Может быть, вы можете проверить https://github.com/raid5/acts_as_scribe#readme Это работает и с Rails 3.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...