Хорошо, я использую CodeIgniter в качестве своего MVC для проекта, над которым я работаю, с моими приятелями. Мы также используем поддержку сеанса базы данных CI. Благодаря этому я знаю, что существуют уже существующие концепции «Кто в сети», но ни один из них действительно не применим к нашим потребностям. Услуга, которую мы развертываем, представляет собой самостоятельную систему SaaS, но в то же время мы позволяем нашим пользователям общаться друг с другом. С этим мы позволяем им делиться с теми, кому они хотят получить конкретную информацию, например, кто в сети, когда, где и т. Д. Итак, я знаю, что сеансы CI улавливают IP, как и мы, когда пользователь входит в систему.
Так что мне интересно, есть ли правдоподобная идея подумать, что я могу использовать данные сеанса для того, что это такое, сравнить ips в сеансовой базе данных с теми, кто вошел в систему, в некотором смысле создать собственный маленький «Кто в сети», специально для людей, которые «дружелюбны» друг к другу с помощью нашего сервиса. Если это хорошая и потенциальная идея, что бы вы предложили в качестве средства борьбы с ней и обработки ее для этого типа дисплея? Я только спрашиваю, потому что я не на 100%, как работают сеансы с помощью CI, поэтому я не уверен, что он будет работать в мою пользу, как я сейчас представляю.
Если мое воображение, однако, убегает со мной, что было бы хорошим способом справиться с этим в противном случае?
EDIT После входа в систему на двух компьютерах я вижу, что сеанс CI в БД имеет 2 с одним и тем же IP-адресом, поэтому мой первоначальный мыслитель кажется ошибочным.
Также спасибо за голос «Даун», кто бы вы ни были, вы могли бы по крайней мере сказать, почему в комментарии мне очень любопытно узнать, как достичь этой идеи, но я не могу получить отклик на нее? Если вы знаете статью или сообщение здесь, которые могут мне помочь, то, по крайней мере, укажите мне на это, потому что мои поиски ничего не дают для того, что я пытаюсь объяснить здесь.
В принципе, вы хотите проверить таблицу _ci_sessions
(или что бы то ни было ваше имя) для записей, где столбец last_activity
находится в определенном диапазоне текущего времени (5 минут, 10 минут и т. Д.). С помощью HTTP нет отличного способа узнать точное время, когда кто-то отказался от своей сессии (если они явно не выходят из системы, и вы сами уничтожаете сеанс). Вы можете сделать это с помощью сокетов, но это обычно слишком сложно для чего-то подобного.
После того, как вы получите список «потенциальных» сеансов, вам все равно придется циклически перебирать их (помните, чтобы user_data
столбец user_data
!), Чтобы найти те, у которых есть правильный ключ / значение userdata, чтобы составить «логин» на основе вашего системы аутентификации. Я бы сделал это первым, чтобы получить доказательство концепции, а затем найти способ кэшировать результат по нескольким запросам, так как в любом случае он не является точным на уровне запросов. Вам будет лучше без дополнительной нагрузки на каждый запрос.