Концепт глобальных статусов присутствия контактов

Устаревшие и неактуальные темы, которые содержат полезную информацию.
Закрыто
x2088
Сообщения: 36
Зарегистрирован: Чт май 05, 2022 2:33 pm

Концепт глобальных статусов присутствия контактов

Сообщение x2088 »

Всё это жёстко связано между собой и одно без другого не работает. Плюс до кучи пару мелочей, полезных на публичных серверах.

00. Только моим контактам в КЛ следует отправлять мой статус всегда.
01. Многопользовательские комнаты работают по системе подписок - вошёл - будешь в списке пока явно не выйдешь, а не уйдёшь в оффлайн.
02. Многопользовательские комнаты более 16-20 контактов должны быть принудительно ограничены - не рассылать и не запрашивать статус автоматически (ограничение сервера, ручная активация в настройках многопользовательской комнаты).
03. Пользователь должен иметь возможность вручную запросить статус контакта в многопользовательской комнате при нажатии на кнопку, на всплывающей панели действий с контактом.
04. Количество запросов статусов должно быть ограничено по времени: 1 запрос каждые 15 минут для запрашиваемого ID и всего 100 запросов в час (ограничение сервера).
05. Сервер не должен быть инициатором проверки статуса присутствия - его должен публиковать клиент. Если клиент подтверждает прием пакетов или проявляет какую-либо активность - он онлайн в течение 1 минуты, если активности нет в течение 5 минут - он оффлайн. Клиент может, но не обязан, посылать служебные пакеты "Я здесь" для поддержания присутствия. Клиент запрашивает статус у сервера.
06. Список статусов: оффлайн, невидимый, онлайн, отошёл, не беспокоить. Остальной зоопарк не нужен - уточнение в тексте статуса.
07. Моя текстовая строка статуса состояния должна быть доступна всем моим контактам, даже если я оффлайн (мой КЛ и многопользовательская комната). Это важно. Поддержка графических смайлов, как вариант возможна эмуляция х-статуса, настроения и занятия вставкой кода картинки и её отображения, отдельные спецификации не нужны.
08. Если клиент не отправляет пакеты присутствия, но находится онлайн, его индикация должна отображаться как "невидимый" (в многопользовательской комнате как онлайн-контакт), а не как оффлайн.
09. После запуска клиента вход в многопользовательские комнаты должен осуществляться со статусом "невидимый", если в настройках явно не указано иное. Отправка сообщения в общий чат многопользовательской комнаты устанавливает статус "онлайн" на 1 минуту или как постоянный статус при отправке нескольких сообщений.
10. Многопользовательские комнаты: Сортировать контакты по активности (сообщения в час в порядке убывания), если количество сообщений за последний час меньше или равно 10 - перемещать контакт в начало списка как активный и постепенно перемещать вниз по списку.
11. Многопользовательские комнаты: Функция закрепления контакта в верхней части списка как избранного на уровне клиента может быть полезной, может быть удобно, чтобы первые 16-20 контактов получали свой онлайн статус автоматически (ручная активация, общие настройки клиента).
12. Многопользовательские комнаты: Кикнуть администратора, который в течение трех месяцев не проявляет активности, например, не отправляет сообщения или не обновляет тему.
13. Многопользовательские комнаты: Кикнуть пользователей, которые были неактивны более двух месяцев (вручная активация).
14. Многопользовательские комнаты: При наведении указателя мыши над контактом или его подсветке показывать всплывающую панель действий с контактом: упомянуть, запрос статуса, шепнуть (ЛС на общей вкладке), открыть вкладку ЛС, перейти к последнему прочитанному сообщению, скопировать ID, анкета, игнорировать.
Закрыто