Проверьте, находится ли пользователь в сети, Framework Codeigniter

Я хочу добавить онлайн или офлайн функцию на моем сайте, который построен на PHP Codeigniter framework.

Я нашел эту библиотеку OnlineUsers0.2 . Но я уже использую встроенный класс сеанса, и я хочу использовать его в онлайн-сервисах.

Моя идея – вставить другое поле в таблицу ci_sessions с идентификатором пользователя, а когда я ci_sessions информацию пользователя, я делаю чек в эту таблицу на основе идентификатора пользователя, если он существует в таблице last_activity а last_activity – менее 5 минут, чем пользователь онлайн, и если он не существует или last_activity составляет более 5 минут, чем пользователь в автономном режиме.

Итак, мой первый вопрос заключается в том, как добавить это поле ci_sessions таблицу ci_sessions и это хороший способ сделать это.

И мой второй вопрос – лучший способ сделать то, что я ищу?

Solutions Collecting From Web of "Проверьте, находится ли пользователь в сети, Framework Codeigniter"

Отвечая на ваш второй вопрос, вы можете легко использовать javascript-websockets для этого в режиме реального времени. Вы также можете использовать длительный опрос с использованием той же логики, но это не очень хороший подход, если у вас много пользователей вашего приложения.

Функция онлайн в режиме реального времени Просто создайте столбец «is_online» в таблице ваших пользователей и напишите функцию, чтобы обновить флаг состояния is_online в базе данных.

Создайте свой phs-сервер с помощью http://socketo.me/ или https://github.com/nekudo/php-websocket . Здесь будет храниться ваша логика сервера, то есть, если пользователь начнет онлайн-обновление онлайн-флага и наоборот.

В javascript, использующем websockets, вы можете просто подключить onopen и onclose событие для выполнения функций на стороне сервера. Когда пользователь нажимает на любую вашу страницу, просто обновляйте статус в базе данных.

 function WebSocketTest() { if ("WebSocket" in window) { alert("WebSocket is supported by your Browser!"); // Let us open a web socket var ws = new WebSocket("ws://localhost:9998/echo"); ws.onopen = function() { // Web Socket is connected, send data using send() ws.send("Message to send"); alert("Message is sent..."); }; ws.onclose = function() { // websocket is closed. alert("Connection is closed..."); }; } else { // The browser doesn't support WebSocket alert("WebSocket NOT supported by your Browser!"); } } 

Дополнительная ссылка http://www.tutorialspoint.com/html5/html5_websocket.htm