Перейти к содержимому


Оффлайн статус пользователя


Сообщений в теме: 15

#1 goodcolor

    Активный участник

  • Пользователи
  • PipPipPip
  • 206 сообщений
  • Пол:Мужчина
  • Город:Йошкар-Ола

Отправлено 31 Май 2017 - 15:22

Где можно прочитать статус пользователя, указывающий на то, что пользователь находится оффлайн (вышел из программы)?
В логах можно прочитать только вход пользователя и ручной выход пользователя.
Но выход так же может происходить при выключении браузера. Чат это каким-то образом понимает.
Компания "Хороший Цвет"
www.GoodColor.ru - поставки и производство самосветящихся товаров и материалов

#2 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 31 Май 2017 - 15:40

В таблице users есть поля, в которых отмечается активность пользователя, по времени его присутствия. Соответственно, офлайном считается отсутствие активности в течение например 30 минут.

#3 goodcolor

    Активный участник

  • Пользователи
  • PipPipPip
  • 206 сообщений
  • Пол:Мужчина
  • Город:Йошкар-Ола

Отправлено 31 Май 2017 - 16:00

Т.е. серый кружок в окне чата означает, что пользователь без активности более 30 минут?
Что означает в таком случае жёлтый кружок?
Компания "Хороший Цвет"
www.GoodColor.ru - поставки и производство самосветящихся товаров и материалов

#4 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 31 Май 2017 - 16:10

Я точно не помню какие там интервалы стоят, говорю только суть алгоритма. Желтый кружок очевидно ставится по меньшему времени отсутствия, минут 5 к примеру.

#5 goodcolor

    Активный участник

  • Пользователи
  • PipPipPip
  • 206 сообщений
  • Пол:Мужчина
  • Город:Йошкар-Ола

Отправлено 31 Май 2017 - 16:46

В таблице пользователей есть 2 поля:
last_time - дата последней авторизации
last_event - дата последнего действия
Верно?
Компания "Хороший Цвет"
www.GoodColor.ru - поставки и производство самосветящихся товаров и материалов

#6 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 31 Май 2017 - 17:18

Сам не в курсе честно говоря.

#7 goodcolor

    Активный участник

  • Пользователи
  • PipPipPip
  • 206 сообщений
  • Пол:Мужчина
  • Город:Йошкар-Ола

Отправлено 31 Май 2017 - 17:49

Просмотр сообщенияCbCoder (31 Май 2017 - 17:18) писал:

Сам не в курсе честно говоря.
Уточните пожалуйста. У вас наверняка поблизости есть те, кто в курсе.
Компания "Хороший Цвет"
www.GoodColor.ru - поставки и производство самосветящихся товаров и материалов

#8 goodcolor

    Активный участник

  • Пользователи
  • PipPipPip
  • 206 сообщений
  • Пол:Мужчина
  • Город:Йошкар-Ола

Отправлено 31 Май 2017 - 18:10

last_time - точно не дата последней авторизации, проверил, обновилось вместе с последним действием.
Компания "Хороший Цвет"
www.GoodColor.ru - поставки и производство самосветящихся товаров и материалов

#9 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 01 Июнь 2017 - 09:25

А зачем вам дата последней авторизации, не совсем понял? Вы же спрашивали вроде про активность (чтобы зафиксировать офлайн), а данные поля отмечают только ее. Время авторизации можно узнать только по логам, судя по всему.

#10 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 01 Июнь 2017 - 09:34

Цитата

Уточните пожалуйста

Уточнил сам по коду. Короче, разница между ними в том, что last_event обновляется при запуске любого скрипта, а last_time исключает аяксовский events.php, который автоматом каждые 5 сек запускается (проверяет новые напоминания, сообщения и т.д.). Т.о. если вам нужна проверка именно выхода/закрытия программы, то проверять надо скорее last_event. А если активность пользователя (переходы по страницам) - то last_time.

#11 goodcolor

    Активный участник

  • Пользователи
  • PipPipPip
  • 206 сообщений
  • Пол:Мужчина
  • Город:Йошкар-Ола

Отправлено 01 Июнь 2017 - 11:22

Получается, если last_event не обновился спустя 5 секунд после последнего обновления - значит браузер пользователя закрыт или он вышел из программы?
Компания "Хороший Цвет"
www.GoodColor.ru - поставки и производство самосветящихся товаров и материалов

#12 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 01 Июнь 2017 - 16:05

Ну по идее да. Если все как надо работает.

#13 goodcolor

    Активный участник

  • Пользователи
  • PipPipPip
  • 206 сообщений
  • Пол:Мужчина
  • Город:Йошкар-Ола

Отправлено 01 Июнь 2017 - 16:15

Спасибо. Остается проверить всё ли работает как надо.
Компания "Хороший Цвет"
www.GoodColor.ru - поставки и производство самосветящихся товаров и материалов

#14 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 01 Июнь 2017 - 16:41

Погорячился я насчет 5 секунд. Сейчас там по умолчанию стоит 30 секунд, если иное не задано в переменной $config['events_refresh']. Возможно раньше было именно 5 (я помню эту цифру), но потом увеличили интервал для снижения нагрузки.

Но если у вас включена телефония, при этом не браузерная или старая версия, то там есть свой фоновый процесс по получению статуса с сервера, который вызывается те же каждые 5 секунд. На всякий проверьте по консоли что и как часто там вызывается.

#15 f-jeka

    Активный участник

  • Пользователи
  • PipPipPip
  • 196 сообщений

Отправлено 18 Июль 2018 - 19:30

Возможно ли как то вручную задавать статусы пользователям?
Ситуация вот в чем. Есть несколько менеджеров и у каждого разная нагрузка в течении дня. Есть заявки которые оператор назначает на менеджеров.
Очень часто заявки назначаются на тех, у кого и так перегрузка по работе и не назначаются на тех кто свободен.
Можно ли как то сделать чтобы менеджер ставил статус, например, Занят и на него не назначали заявки. Или статус Свободен, что означает что готов принимать новые заказы.
Можно сделать это в таблице создав список со статусами Занят и Свободен.
Но это операторам придется вручную каждый раз обновлять страницу чтобы понять.
Вот в чате очень удобно подсвечивается кто в онлайн а кто в офлайне.
Возможно ли реализовать такое же окно со статусами?

#16 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 19 Июль 2018 - 09:49

Можно, но сложно. Можно например создать представление со списком пользователей и ajax запросами каждые 5 секунд (или иным интервалом) к таблице со статусами. Тогда вручную обновлять не придется.





Количество пользователей, читающих эту тему: 2

0 пользователей, 2 гостей, 0 анонимных