|
24 / 24 / 8
Регистрация: 27.02.2012
Сообщений: 492
|
|
Как узнать "кто онлайн?" в своей социальной сети06.03.2012, 05:56. Показов 8289. Ответов 34
Метки нет (Все метки)
Подскажите пожалуйста, при создании соцсети, как сделать функцию которая будет проверять онлайн пользователь или нет, а потом выводит сообшение "online" если пользователь будет в сети??
0
|
|
| 06.03.2012, 05:56 | |
|
Ответы с готовыми решениями:
34
Как создать мобильную версию своей социальной сети на мобильные устройства? Как узнать, кто онлайн Как узнать, кто заходит ко мне на компьютер из сети? |
|
307 / 218 / 70
Регистрация: 08.11.2010
Сообщений: 1,899
|
|
| 06.03.2012, 07:06 | |
|
я думаю что надо Выводить всех пользователей с $_SESSION['username'];
Добавлено через 14 минут Есть еще вариант правда незнаю как работает: 1. Хранить Сессию в БД и выводить кто в ней! 2. При авторизации пользователя заносьть в бд премя а на странице выводить пользователей кто был 2минуты назад!
1
|
|
|
Исследователь
|
||
| 06.03.2012, 12:40 | ||
|
0
|
||
|
24 / 24 / 8
Регистрация: 27.02.2012
Сообщений: 492
|
|
| 06.03.2012, 17:37 [ТС] | |
|
а как спомощью куки можно сделать?
0
|
|
|
Исследователь
|
|
| 06.03.2012, 19:08 | |
|
0
|
|
|
25 / 25 / 3
Регистрация: 26.01.2012
Сообщений: 54
|
|
| 06.03.2012, 20:16 | |
|
Как делал это я:
При любом действии пользователя на сайте заносить в БД время сего действия в формате UNIX. То есть, при каждом обновлении страниц, это поле в БД будет меняться. При отображении данных пользователя, при выводе статуса "онлайн", проверять больше ли оно, чем time() - 300 (5 минут). Для вывода блока "кто онлайн" выбирать из БД запросом с WHERE time > time() - 300. У этого подхода есть минут - слишком частое обращение к БД для того, чтобы перезаписать время. Это можно оптимизировать, скажем, изменяя данные не более одного раза в минуту (эту же информацию следует хранить в сессии).
0
|
|
|
Веб-мастер
89 / 89 / 19
Регистрация: 11.08.2011
Сообщений: 674
|
||||||||||||||||
| 06.03.2012, 21:49 | ||||||||||||||||
|
Zazu, Я раньше делал без JS. И эффективность не очень. Сейчас-же один человек попросил помощ по сайту. По мере создания сайта я сталкивался с JS, и с помощью AJAX сделал систему онлайна. Главное чтобы соеденение было нормальное. Если страницы всеже будут грузится дольше 10 секунд. То советую выводить юзеров которые заносили время последнего запроса JS в БД.
Страница HTML где автоматически посылается запрос с помощью JQuery:
Далее, рядом с HTML файликом надо иметь папочку ajax(по моему примеру) и иметь в ней PHP файл который соеденяется с базой и обновляет данные о пользователе по сессиям с которыми он явно ходит. Пример:
0
|
||||||||||||||||
|
25 / 25 / 3
Регистрация: 26.01.2012
Сообщений: 54
|
|
| 07.03.2012, 01:23 | |
|
Maksimchikfull, всё в общих чертах верно (в JS не знаток правда, для этого есть свой js-кодер), но почему вы так не любите БД? Что она вам сделала?
Я к тому, что не стоит так часто тра**** БД. Обновление блока "онлайн" и установка времени последней активности - не столь приоритетная операция, как, скажем, "мгновенные" сообщений. Думаю, достаточно обновляться раз в пол минуты, минуту. Вконтакте, вроде бы, при промежутке неактивности пользователя вплоть до 15 минут (могу ошибаться касательно точного промежутка времени), юзер считается пользователем онлайн. И это при том, что за 15 минут он не обновил ни одну страницу. Так зачем вообще долбить БД при неактивности пользователя так часто? Зачем обновлять время последней активности посредством AJAX? Я мог оставить вкладку в браузере открытой и пойти Как я сказал, время последней активности стоит изменять при обновлении страницы и с помощью сессии реализовать ограничение, не позволяющее менять это значение чаще чем раз в n минут. Если же требуется сделать динамический список, типа "кто онлайн", который будет обновляться без обновления страницы, то да, AJAX, но не так часто, да и нужно ли это?..
0
|
|
|
24 / 24 / 8
Регистрация: 27.02.2012
Сообщений: 492
|
|
| 07.03.2012, 12:17 [ТС] | |
|
Спасибо большое всем за желание помочь! Я думаю самый лучший вариант узнавать "Кто онлайн?" с помощью Ajax!
0
|
|
|
25 / 25 / 3
Регистрация: 26.01.2012
Сообщений: 54
|
|
| 07.03.2012, 14:53 | |
|
Бедная БД
0
|
|
|
75 / 75 / 13
Регистрация: 02.02.2012
Сообщений: 462
|
||||||
| 07.03.2012, 15:45 | ||||||
|
я вот так выводил сколько гостей и зарегистрированных пользователей онлайн
1
|
||||||
|
25 / 25 / 3
Регистрация: 26.01.2012
Сообщений: 54
|
|
| 07.03.2012, 16:17 | |
|
login='$_COOKIE[login]'
Много чего нехорошего тут можно сделать.
0
|
|
|
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
|
|
| 07.03.2012, 16:29 | |
|
0
|
|
|
Благотворец
142 / 122 / 13
Регистрация: 29.04.2009
Сообщений: 537
|
|||
| 07.03.2012, 16:53 | |||
|
Добавлено через 1 минуту
0
|
|||
|
25 / 25 / 3
Регистрация: 26.01.2012
Сообщений: 54
|
|
| 07.03.2012, 17:32 | |
|
arvitaly, увы, причём! И если заказчик так считает, то его стоит хотя бы попытаться переубедить. Например, так: у меня открыто 5 страниц пользователей (а это не много, правда?), то есть, за пять секунд - 5 запросов, за минуту - 60... Кроме меня в своих браузерах открыли по пять страниц ещё 100 юзеров (100 - тоже достаточно не много). Вот и получается, что в минуту к БД летит 6000 запросов. По-моему, дохрена. И это кроме десятков других действия, непосредственно связанных с БД. А если ещё додуматься пинговать каждые 5 секунд время последней активности (без реальной активности, при лишь открытой странице) пользователя, то...
0
|
|
|
Благотворец
142 / 122 / 13
Регистрация: 29.04.2009
Сообщений: 537
|
|
| 07.03.2012, 17:35 | |
|
Хм, а в чем разница допустим если 12000 пользователей каждые 5 секунд будут оставлять сообщения, а не проверять статус онлайн? Разве тут ваша БД не загрузится?
0
|
|
|
25 / 25 / 3
Регистрация: 26.01.2012
Сообщений: 54
|
||
| 07.03.2012, 17:45 | ||
|
То, что у пользователей возникнет столь огромное желание общаться - их право, для этого сайт и пишется. Это вынужденные обращения, обязательные, важные и неотъемлемые. А бессмысленное пингование (почему бессмысленное - объяснил выше) - излишние затраты, НИКОМУ не нужные, даже пользователю. И их легко можно избежать. И это далеко не микрооптимизация, это, увы, макро~.
ЗЫ. БД не моя. Добавлено через 5 минут
0
|
||
|
Благотворец
142 / 122 / 13
Регистрация: 29.04.2009
Сообщений: 537
|
|
| 07.03.2012, 17:46 | |
|
К примеру в чате вполне вероятно хочется узнавать о доступности пользователя намного быстрее чем через минуту
0
|
|
|
25 / 25 / 3
Регистрация: 26.01.2012
Сообщений: 54
|
|
| 07.03.2012, 17:50 | |
|
Чаты не стоит писать на PHP
Это огромнейшая нагрузка, т. к. идея чата заключается в быстром отклике.NodeJS Добавлено через 1 минуту Хотя, чат можно оптимизировать и на PHP, но больших успехов при большом онлайне, не думаю, что можно добиться. Я о Shared memory.
0
|
|
|
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
|
|
| 07.03.2012, 17:52 | |
Сообщение было отмечено как решение
Решение
Читаю вот ваши посты и решил тоже написать
![]() Я считаю, что Art-corp дельные вещи говорит, не стоит на Ajax'е такое реализовывать. Лучше скрипт "онлайн/оффлайн" подключать к страницам, и обращаться к БД только в том случае, если пользователь зашёл на страницу или перезагрузил её.
3
|
|
| 07.03.2012, 17:52 | |
|
Помогаю со студенческими работами здесь
20
Как узнать кто в сети запустил мою программу Отслеживание трафика в сети или как узнать кто где шарил? Как узнать, кто заходил в папку (или делал изменения), которая находится в сети Как заработать в социальной сети Как починить музыку в социальной сети? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|