|
24 / 24 / 8
Регистрация: 27.02.2012
Сообщений: 492
|
|
Как узнать "кто онлайн?" в своей социальной сети06.03.2012, 05:56. Показов 8659. Ответов 34
Метки нет (Все метки)
Подскажите пожалуйста, при создании соцсети, как сделать функцию которая будет проверять онлайн пользователь или нет, а потом выводит сообшение "online" если пользователь будет в сети??
0
|
|
| 06.03.2012, 05:56 | |
|
Ответы с готовыми решениями:
34
Как создать мобильную версию своей социальной сети на мобильные устройства? Как узнать, кто онлайн Как узнать, кто заходит ко мне на компьютер из сети? |
|
Благотворец
142 / 122 / 13
Регистрация: 29.04.2009
Сообщений: 537
|
|
| 07.03.2012, 17:53 | |
|
Хм, т.е. вконтакте с facebook - плохой пример?
0
|
|
|
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
|
|
| 07.03.2012, 17:53 | |
|
0
|
|
|
Благотворец
142 / 122 / 13
Регистрация: 29.04.2009
Сообщений: 537
|
||||||||||||
| 07.03.2012, 17:54 | ||||||||||||
0
|
||||||||||||
|
25 / 25 / 3
Регистрация: 26.01.2012
Сообщений: 54
|
||
| 07.03.2012, 18:11 | ||
|
Да и контакт с фейсбуком могут себе позволить несколько большую нагрузку, с их серваками. А мы не можем. А по поводу сессии... Многоуважаемый arvitaly, я запускать предложенные скрипты не стал. Я знаю, что один из них будет работать, а второй нет. Если Вы перечитаете моё сообщение ещё раз, то поймёте, что в первый раз читали невнимательно. Добавлено через 55 секунд Чуть попозже смогу сказать, какие и зачем летят запросы Вконтакте - поговорю с JS-кодером.
0
|
||
|
24 / 24 / 8
Регистрация: 27.02.2012
Сообщений: 492
|
|
| 07.03.2012, 18:48 [ТС] | |
|
Ладно, раз всё так далеко зашло, то осмелюсь спросить:
Возьмём к примеру аську, там как всё устроено? возможно ведь такоеже осуществить в соцсети?
0
|
|
|
25 / 25 / 3
Регистрация: 26.01.2012
Сообщений: 54
|
|
| 07.03.2012, 19:09 | |
|
Хм, аська
Честно, не знаю, как там устроено, но точно не PHP, это гарантирую)) Есть два варианта: передача сообщений минуя сервер и передача от клиента к клиенту (p2p). Как в аське - хз, да и не важно...Рассмотрим пример "мгновенных" сообщений Вконтакте. Я пишу другу сообщение. Как только я его отправил, оно добавляется в БД. Скрипт на странице в браузере моего друга отправляет каждые n мс. запрос, типа "что-то изменилось на серваке? Появились новые мессаджи?". И если новые сообщения есть, они все возвращаются, скажем, в json формате ему. Это плохой подход, ибо слишком много ненужных запросов - мы слишком часто пытаемся узнать, не добавились ли новые сообщения и чаще всего ответ будет отрицательным. Проще говоря, мы зазря насилуем базу данных. Идеально было бы лезть в БД, зная, что там точно есть новые сообщения. Можно использовать Shared Memory - технологию, позволяющую хранить на серваке какие-либо данные, доступные разным пользователях по какому-то идентификатору. В этой области памяти мой скрипт и скрипт друга будут хранить id последнего добавленного в БД сообщения. И каждый раз, отправляя запрос на сервак за новой порцией данных, слать туда id последнего сообщения отображаемого у нас в браузере(!). Скрипт на серваке смотрит, не превышает ли id, хранящееся в общей ячейке памяти id последнего полученного сообщения. Если номер на серваке больше номера последнего ранее полученного сообщения, то тогда мы понимаем, что в БД есть новые сообщения и достаём их, если id равны, то новых сообщений нет и в ответ - null. Идея в том, что мы лезем в БД лишь тогда, когда точно знаем, что там есть что-то новенькое. Вместо Shared Memory можно, конечно, использовать, скажем, временный файлик, куда будем писать id последнего сообщения, но, думаю, это медленнее и менее удобно. НО и этот вариант далёк от идеала, ведь запросы мы вынуждены посылать также часто, как и раньше, благо что БД разгрузили. В идеале, скрипт на клиенте ничего не пингует, а получает от сервака новые сообщения по его инициативе. Это и есть серверный JS - NodeJS. Вконтакте, вроде бы, именно он и используется. Однако мало на каких хостингах он есть. Сам NodeJS, равно как и JS, я не знаю. Zazu, поймите, не нужно Вам так часто менять статус "онлайн". Обновлять время последней активности, думаю, достаточно лишь раз в минуту (пусть 30 сек.), а если хотите, глядя на страницу друга увидеть, как его статус изменится с "онлайн" на "оффлайн" (без перезагрузки, используя AJAX), то тоже не переусердствуйте (1 минута - нормально), да и подумайте - нужно ли это, ведь я и мои пять друзей, профили которых открыты у меня во вкладках браузера, могут пойти спать, а 5 скриптов так и будут стучаться к БД (пусть и не часто), пытаясь застукать спящих друзей онлайн...
0
|
|
|
24 / 24 / 8
Регистрация: 27.02.2012
Сообщений: 492
|
|
| 08.03.2012, 01:19 [ТС] | |
|
а как в Ajax устанавливать время, через которое он должен обновлять значение?
0
|
|
|
25 / 25 / 3
Регистрация: 26.01.2012
Сообщений: 54
|
||||||
| 08.03.2012, 02:02 | ||||||
|
Zazu, если использовать jQuery, то примерно вот так:
1
|
||||||
|
Благотворец
142 / 122 / 13
Регистрация: 29.04.2009
Сообщений: 537
|
|
| 08.03.2012, 11:17 | |
|
0
|
|
|
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
|
||
| 08.03.2012, 13:19 | ||
|
Добавлено через 1 минуту Zazu, icq это десктопная прога, ее можно написать хоть на Delphi, насколько я помню, там есть специальные модули позволяющие связываться с сервером (popup)
0
|
||
|
Благотворец
142 / 122 / 13
Регистрация: 29.04.2009
Сообщений: 537
|
|
| 08.03.2012, 15:07 | |
|
0
|
|
|
25 / 25 / 3
Регистрация: 26.01.2012
Сообщений: 54
|
||
| 08.03.2012, 15:56 | ||
|
0
|
||
|
Благотворец
142 / 122 / 13
Регистрация: 29.04.2009
Сообщений: 537
|
|||||||
| 08.03.2012, 16:13 | |||||||
0
|
|||||||
|
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
|
|
| 08.03.2012, 16:15 | |
|
так, ребята, смотрим в документацию -
session_id - получает и/или устанавливает id текущей сессии. Если id специфицирован, он замещает текущий session id. При этом session_id() необходимо вызывать до session_start(). - Получается эта ф-я перепишет текущий SID в случае если задать ей параметр, иначе не будет перезаписывать. вот не помню, где то читал, что session_id надо ызывать до session_start()
0
|
|
|
Благотворец
142 / 122 / 13
Регистрация: 29.04.2009
Сообщений: 537
|
|
| 08.03.2012, 16:28 | |
|
Просто нужно понимать что делает session_start, функция формирует заголовок для браузера, устанавливающий в cookie параметр - PHPSESSID и соответственно session_id задает значение для этого параметра. Но в течение выполнения одного скрипта может понадобиться изменить session_id (для последующих вызовов) - если допустим за время исполнения скрипта данные изменятся. Это редкий случай, но возможный. Я к тому, что главное - понимать как что работает, а не просто знать, что нужно делать так или иначе
0
|
|
| 08.03.2012, 16:28 | |
|
Как узнать кто в сети запустил мою программу Отслеживание трафика в сети или как узнать кто где шарил? Как узнать, кто заходил в папку (или делал изменения), которая находится в сети Как заработать в социальной сети Как починить музыку в социальной сети? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
[golang] Конкурентный fetcher с ограничением максимального количества одновременных HTTP запросов.
alhaos 10.06.2026
Задача
Реализовать конкурентный fetcher с ограничением максимального количества одновременных HTTP запросов.
Сигнатура
func Fetch(urls string, maxConcurrent int) Result
Пример
urls :=. . .
|
[golang] Состояние гонки (race condition)
alhaos 10.06.2026
Состояние гонки (race condition)
Состояние гонки (Race Condition) — это ошибка, возникающая при одновременном доступе нескольких горутин к одним и тем же данным без должной синхронизации. При этом. . .
|
Взрослые отношения, и почему они не получаются
kumehtar 09.06.2026
Когда в детстве ребёнок не получает от родителей чего-то важного, он лишается не просто приятных переживаний, а основы для формирования определённых внутренних качеств и навыков. Если ребёнок не. . .
|
[golang] Worker Pool
alhaos 09.06.2026
Worker Pool
Worker Pool — паттерн конкурентной обработки задач в Go.
Суть: фиксированное количество горутин-воркеров читают задачи из общего канала
и пишут результаты в общий канал результатов. . . .
|
|
[golang] Pipeline
alhaos 08.06.2026
Pipeline
Pipeline — паттерн конкурентной обработки данных в Go.
Суть: данные проходят через цепочку независимых стадий, каждая из которых работает в своей горутине и общается с соседями через. . .
|
Свет внутри себя
kumehtar 07.06.2026
Пусть это будет здесь
lIs4oanZS9Y
|
Программа для com-порта
Uhbif79 05.06.2026
Всем привет, давно хотел изучить Qt, начинал, бросал, потом снова начинал. И сейчас вот смог написать свою первую программу.
До этого имел опыт программирования микроконтроллеров, писал прошивки на. . .
|
Транскрипция 55-минутного видео через Whisper: WhisperDesktop облажался, спас Google Colab[
anaschu 01.06.2026
Понадобилось получить текст из свежезагруженного видео на YouTube. Казалось бы, задача на пять минут. Заняла полтора часа. Делюсь опытом — может кому пригодится последовательность решений.
. . .
|