Как найти онлайн пользователя


Загрузить PDF


Загрузить PDF

Skype — это бесплатная программа, которая позволяет использовать видеочат для общения с друзьями по всему миру. Установив это приложение, пользователь может создать или присоединиться к видео- и аудиочату, а также обмениваться сообщениями абсолютно бесплатно по высокоскоростному соединению. В этих чатах одновременно может участвовать несколько пользователей, а благодаря недавнему обновлению общаться с пользователями других платформ стало еще проще. Skype также обладает функциональными возможностями телефонной линии, но данный сервис является платным. Эта программа доступна на нескольких платформах (Windows, Mac, iOS и Android), где имеет практически одни и те же функции. Если вы еще не успели скачать Skype, прочтите статью «Как загрузить Skype». Узнать, кто из друзей сейчас находится в сети, очень просто!

  1. Изображение с названием Find Online Skype Users Step 1

    1

    Найдите контакты с зелеными галочками. Зеленая метка рядом с именем пользователя в списке контактов означает, что данный пользователь сейчас в сети и может говорить. Список контактов автоматически отображается при входе в Skype на Windows. Найдите список контактов на боковой панели, в левой части окна Skype. Все пользователи, которые сейчас в сети, находятся вверху списка.

    • Начальное окно в версии для Mac будет зависеть о того, какое окно было открыто последним в предыдущей сессии. Чтобы отобразить список контактов, нажмите на «Контакты» на левой боковой панели. Рядом с именами контактов, которые находятся онлайн и могут говорить, стоит зеленая галочка и статус «В сети».
  2. Изображение с названием Find Online Skype Users Step 2

    2

    Измените вид списка контактов. В Skype можно изменить отображение списка контактов. Отобразите всех пользователей сразу («Все») или только тех, кто сейчас в сети («В сети»). Если вы привязали другие учетные записи или адресные книги (например, с Facebook), то эти параметры отображения также появятся в меню выбора. Чтобы отобразить их в версии для Windows, найдите небольшое выпадающее меню (по умолчанию стоит «Все») под заголовком «Контакты» и над именами пользователей в списке.

    • Чтобы изменить список в версии для Mac, выберите нужную опцию в верхней части основного окна.
    • Пользователи Skype могут находиться в сети и при этом не быть активными. На это указывает желтая иконка часов. Иконка указывает на то, что пользователь находится в сети, но уже длительное время не использовал программу.
  3. Изображение с названием Find Online Skype Users Step 3

    3

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

    • Чтобы найти эту опцию в некоторых версиях Windows, нужно открыть меню «Контакты» и выбрать «Facebook».
    • После того, как вы увидите список рекомендованных друзей, вам все еще нужно будет отправить запрос на добавление в друзья и подождать, пока он будет принят. Лишь после этого они будут добавлены в ваш список контактов, а их статус появится в программе.
  4. Изображение с названием Find Online Skype Users Step 4

    4

    Добавьте друзей из адресной книги. На Mac программа автоматически синхронизируется с адресной книгой на компьютере. В других версиях также можно импортировать адресную книгу с компьютера. Для этого нужно зайти в меню «Контакты». Чтобы отправить контакту запрос на добавление в друзья, нажмите на зеленую иконку плюса рядом с его именем.[1]

    • Чтобы отобразить список опций, которые можно применить к тому или иному контакту, наведите курсор на его имя пользователя. В зависимости от статуса аккаунта другого пользователя и вашего собственного подключения, позвоните контакту или отправьте ему текстовое или видеосообщение.
    • Прежде чем пользователь будет официально добавлен в ваш список контактов и программа отобразит его статус, он должен принять ваш запрос на добавление в друзья.
    • Чтобы позвонить или отправить SMS друзьями из адресной книги, у которых нет аккаунта в Skype, вам придется заплатить.
  5. Изображение с названием Find Online Skype Users Step 5

    5

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

  6. Изображение с названием Find Online Skype Users Step 6

    6

    Добавьте друзей в чат по электронной почте. В 2015 году в Skype появилась возможность общаться с друзьями, у которых нет аккаунта или программы Skype на компьютере. Просто отправьте им запрос на добавление в переписку, прикрепив ссылку к электронному письму.[2]

    Реклама

  1. Изображение с названием Find Online Skype Users Step 7

    1

    Откройте меню «Добавить контакт». Найти новых пользователей в Skype можно несколькими способами. Запустите приложение и откройте меню «Добавить контакт».[3]

    • На Мас сначала откройте меню «Контакты», а затем выберите опцию «Добавить контакт».
    • В версии для Windows нажмите на кнопку «Добавить контакт» в главном окне программы или нажмите на «Контакт» вверху окна и выберите опцию «Добавить контакт».
  2. Изображение с названием Find Online Skype Users Step 8

    2

    Используйте строку поиска. Если вам известны контактные данные (например, имя, адрес электронной почты или имя пользователя в Skype), найдите строку поиска в левом верхнем углу программы и введите их. Сначала Skype выполнит поиск среди ваших текущих контактов. Чтобы найти пользователей, которых еще нет в вашем списке контактов, найдите в выпадающем меню опцию «Поиск в справочнике Skype».[4]

    • В Skype также можно выполнить поиск по чату. Для этого существует отдельная опция в выпадающей строке поиска.
  3. Изображение с названием Find Online Skype Users Step 9

    3

    Укажите параметры поиска. Альтернативой поисковой строке является ввод параметров поиска интересующего вас пользователя. Выполните поиск по стране или городу и сузьте поиск, указав язык, возраст или пол.

    • Чтобы найти друга, вам не помешает узнать его географическое местоположение, поскольку зачастую поиск отображает несколько одинаковых результатов.
    • Отправьте запрос на добавление в список контактов и подождите, пока он будет одобрен. Лишь после этого можно будет увидеть, находится ли данный пользователь онлайн или нет.
  4. Изображение с названием Find Online Skype Users Step 10

    4

    Отправьте запрос «Добавить в список контактов». Нажмите на синюю иконку человека со знаком плюс, чтобы отправить ему запрос на добавление в список контактов. Вам будет предложено ввести личное сообщение, которое будет отправлено вместе с запросом, или оставить сообщение по умолчанию «Прошу добавить меня в свой список контактов».

  5. Изображение с названием Find Online Skype Users Step 11

    5

    Начните общаться. Когда пользователь примет запрос, вы получите уведомление о том, что пользователь был добавлен в список контактов. Узнайте, находится ли ваш новый друг онлайн (это видно по зеленой галочке), и начните с ним общаться!

    Реклама

Советы

  • Имея средства на счете в Skype, можно совершать интернет-звонки с любого участка планеты за очень приемлемую цену.
  • Не все веб-камеры (какими бы дорогими они ни были) совместимы со всеми операционными системами. Перед покупкой внимательно изучите совместимость веб-камеры с операционной системой, установленной на вашем компьютере.

Реклама

Что вам понадобится

  • Компьютер (с веб-камерой) или смартфон
  • Наушники (необязательно) или колонки
  • Программа «Skype» (загрузка бесплатна)

Об этой статье

Эту страницу просматривали 17 519 раз.

Была ли эта статья полезной?

Пользователи онлайн

Принцип реализации

На многих сайтах есть необходимость определять, какие пользователи в данный момент находятся на связи.
Например, это используется в социальных сетях. Эта функция реализуется так: каждый пользователь регулярно
отправляет на сервер информацию о том, что он в сети. Время этого сообщения записывается в БД.
Если пользователь отправлял это сообщение совсем недавно, то считается что он в сети. Таким образом,
реализация данной функции состоит из двух частей:

  1. Каждый пользователь обновляет время сообщения о том, что пользователь онлайн
  2. Для нужных пользователей проверяется, когда они обновляли время сообщения. Тот, кто обновлял
    недавно – в сети. Кто не обновлял некоторое время – не в сети.

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

Обновление информации

Это действие можно выполнить двумя способами. Простой вариант заключается в том, что информация обновляется
при переходе по страницам. Но этот способ имеет недостаток. Пользователь может долго находиться на одной
странице и не переходить по другим страницам. Тогда информация о том, что он на связи, не обновляестя и будет
указано, что он вышел с сайта. А если увеличить время, в течении которого пользователь считается онлайн, то
получится противоположная ситуация. Пользователь уже вышел с сайта, но ещё долго считается, что он в сети.
Оптимально подобрать время достаточно сложно.

Более сложный способ состоит в использовании AJAX. На каждой странице сайта должен быть скрипт, который
регулярно обновляет информацию в БД. При этом Вы точно знаете, через какие промежутки времени происходит
обновление информации. Мы рассмотрим оба способа.

В базе данных дожна быть таблица users с информацией о пользователях.
Добавим в неё поле online. В него будет записываться время обновления информации.
Будем записывать его в фомате Unix, то есть в секундах. Поэтому поле имеет тип INT.

Страницы сайта должны быть такие:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

<?php
header('Content-type: text/html; charset=utf-8');
$user_id = 2; //берётся из сессии
$current = time();
$db = mysqli_connect('localhost', 'root', '', 'mybase');
$query = "UPDATE users SET online=$current WHERE id=$user_id";
$result = mysqli_query($db, $query);
?>
<!DOCTYPE html>
<html>
<head>
<title>Страница</title>
<meta charset="utf-8">
</head>
<body>
<p>Содержимое страницы</p>
</body>
</html>

В строке 3 создаётся переменная $user_id, в которую записано id пользователя.
На практике id записывается в сессию при авторизации, а в этом скрипте он должен быть получен из сессии.

В остальном скрипт понятен. В переменную $current записывается текущее время
и отправляется в БД, в поле online. Так должны выглядеть все страницы сайта. Когда
пользователь переходит на любую страницу, время в поле online обновляется.

Для второго способа Вы должны зать технологию AJAX. Вместо
предложенного выше кода на каждой странице сайта должет быть скрипт, регулярно отправляющий запросы на
сервер. Он выглядит так:

JavaScript:

+

9
10
11
12
13
14
15
16
17
18

function online ()
  {
  var ntime = new Date();
  var current = ntime.getTime();
  var xhr = new XMLHttpRequest();
  xhr.open('GET', 'infonline.php?current='+current, true);
  xhr.send();
  }
online();
setInterval(online, 40000);

Если Вы изучали AJAX, то этот код должен быть Вам понятен. К запросу добавлено текущее время. Но оно добавлено
не для использования на сервере, а для предотвращения кеширования запроса. Первый вызов функции производится
в строке 17. Затем, в строке 18 она запускается в функции setInterval(). Так
сделано для того, чтобы первый запрос отправлялся сразу после загрузки
страницы. Ведь setInterval()
первый раз запускает функцию только через указанный интервал. Приведённый скрипт отправляет запросы на сервер
каждые 40 секунд.

На сервере запускается скрипт infonline.php. Он точно такой же, как на странице в первом примере. Только
в нём не должно быть HTML тегов.

Вывод пользователей онлайн

Данные о том, кто находится онлайн, используется по-разному. На каких-то сайтах просто выводится списох
всех пользователей онлайн. На других выводится разная информация о конкретных пользователях и указывается,
находятся ли они на сайте. При любом варианте используется один принцип – нужно получить текущее время и
сравнить со временем в базе данных. Если разница небольшая, значит пользователь онлайн. В нашем примере данные
обновляются каждые 40 секунд. Значит при разнице в 50 секунд можно считать, что пользователь вышел с сайта.
Если данные обновляются без AJAX, то интервал подобрать сложнее. Вы должны сами определить, сколько времени
в среднем пользователь находится на одной странице.

  • vadimushka_d

Как сделать определение онлайн ли пользователь?

Поделитесь опытом кто делал подобное:

Нужно определять кто онлайн на сайте, а кто уже нет(ели он не проявлял активности на сайте в течении 15 минут, он оффлайн), сейчас статус онлайн или оффлайн будет влиять на некоторое поведения сайта.
В будущем будет чат общий, приватный, и прочее.

Проект на Yii2 интересуют различные варианты подхода, скорей всего ответов в интернете полно, но может появились новые решения.


  • Вопрос задан

    более трёх лет назад

  • 3363 просмотра

Пригласить эксперта

При каждом хите записываем дату и время.
Сравниваем ее с текущим временем.
??????
Профит!

На каждой странице(лучше в одном файле, которая подключена к каждой странице) сохраняете текущее время у текущего пользователя, к примеру – last_active = NOW()
ну и пользователь считается онлайн, если last_active + 15 минут > NOW()(тут уж сами смотрите в каком формате хранить дату/время)

сейчас статус онлайн или оффлайн будет влиять на некоторое поведения сайта.
В будущем будет чат общий, приватный, и прочее.

– ну вот кому это интересно?

Если вы будите делать потом чат то вероятно вам понадобится комет сервер. К примеру вот есть статья с примером как используя комет сервер определить онлайн пользователь или нет. При чём в данном случае определение будет точным с погрешностью мене 1 секунды, а не в стиле что раз был 14 минут назад то и сейчас ещё онлайн.

Я не давно писал чат и там тоже использовал определение онлайн человек или нет. Возможно вам пригодится мой приватный чат


  • Показать ещё
    Загружается…

20 мая 2023, в 10:59

500 руб./в час

20 мая 2023, в 10:29

20000 руб./за проект

20 мая 2023, в 10:14

130000 руб./за проект

Минуточку внимания

Реализация Кто онлайн

Реализация Кто онлайн

Наверняка, Вы часто видели на разных сайтах информацию о количестве online-пользователей, то есть пользователей, которые непосредственно находятся сейчас на сайте. Например, “Кто онлайн” часто добавляют на форумы, социальные сети, различные сервисы, причём даже пишут конкретные логины пользователей, находящихся на сайте. Я решил, что в этой статье разберу, как реализовать “Кто онлайн” на сайте.

Первым делом необходимо понять принцип работы “Кто онлайн”. А принцип следующий: каждый пользователь, который не активен более заданного времени, выбывает из списка online. Каждый новый пользователь добавляется в список online. И этот список хранится в базе данных. Те, кто уже неплохо разбирается в PHP и MySQL, без проблем реализуют всё это. Однако, на всякий случай, распишу подробную инструкцию:

  1. Создать таблицу в базе данных со следующими полями:
    • id – уникальный идентификатор каждой записи.
    • user_id – уникальный идентификатор, соответствующий определённому пользователю. Другими словами, если у Вас есть регистрация, то в таблице с пользователями должен быть указан их id. Вот именно в это поле и необходимо помещать этот id.
    • last_time – количество секунд прошедших с полуночи 01.01.1970 до последней активности пользователя. Это количество секунд легко получается с помощью функции time().
  2. На каждой странице сайта, на каждом скрипте, необходимо реализовать следующий алгоритм:
    1. Получить информацию об активности пользователя, вызвавшего этот скрипт. Если этот пользователь находится в таблице, то надо просто обновить поле last_time у него. Если его там нет, то необходимо добавить этого пользователя в таблицу.
    2. Удалить всех online-пользователей из таблицы, у которых время неактивности превышает заданное, простым SQL-запросом.

Всё, это весь алгоритм. Он, на самом деле, очень простой и самый частоиспользуемый. Что касается времени, через которое пользователь считается за offline, то здесь советую выбрать 30 минут. А сам принцип, надеюсь, стал понятен: каждый пользователь, который переходит на любую страницу сайта, вызывает добавление себя в список online (или обновление last_time, если он там уже был), а также удаление уже неактивных пользователей.

Также вместо user_id можно использовать IP-адрес. Тогда можно реализовать, не сколько зарегистрированных пользователей, а сколько вообще людей находится на сайте.

Я очень рекомендую реализовать этот алгоритм, даже если он Вам кажется совсем простым. А возникшие вопросы Вы можете задать в комментариях.

  • Создано 15.07.2011 14:00:28


  • Михаил Русаков

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Довольно частый вопрос, который задают мне начинающие веб-программисты — это «как определить — онлайн или оффлайн пользователь сайта в данный момент?»

Самый простой и неточный способ — запоминать в базе момент времени, когда конкретный юзер открыл последнюю страницу. Если это время на N минут меньше чем текущее — значит он уже ушёл. Этот метод годится только если юзер постоянно лазит по страничкам и подтверждает своё присутствие. Если он «зачитался» и долго не кликает ссылок на сайте, то скрипт ошибочно определяет его уход.

Более точный способ — в шапку сайта вшить небольшой js-скрипт, работающий по таймеру и отправляющий каждую минуту, например, небольшой пакет, подтверждающий, что страница всё ещё открыта. Сервер запоминает момент прихода последнего из таких пакетов и тем самым может однозначно определить — находится юзер на сайте или нет. Минусы данного способа очевидны: большая нагрузка на сервер. Если сайт одновременно просматривают 100 пользователей, то сервер будет буквально захлёбываться такими пакетами.

Но просто открытое окно ещё не гарантирует нам, что пользователь находится за компьютером. Поэтому необходимо вводить дополнительные проверки, например в js опрашивать событие onmousemove и проверять активность окна (т.е. открыто оно наверху или свёрнуто, а может быть находится под другими окнами). Этим самым мы уточняем — просматривает ли юзер наш сайт физически или он ушёл чай пить, а окно оставил открытым. И затем по таймеру отправлять статус. Недостаток такой же — загрузка сервера пакетами.

Самый сложный, но оптимальный способ. Каждая страница отправляет пинг-пакет на сервер при открытии, при закрытии, при начале неактивности пользователя и при возобновлении активности (например, если юзер 5 минут не двигает мышь, то отправляем пакет «юзер отошёл», как только он вновь двинул мышь — отправляем пакет «юзер пришёл»). Если окно закрываем — отправляем сообщение «окно закрыто». Важно отслеживать все окна, ведь юзер может открыть их несколько. Статус «оффлайн» ставим только тогда, когда юзер закрыл все окна.
Тут возможны подводные камни, например, юзер отключился от инета и только потом закрыл окна. В этом случае сервер не получит сообщения «юзер ушёл» и будет ошибочно думать, что он ещё с нами. Для этого каждые 10-20 минут все окна всё же должны посылать пинг-пакеты, подтверждая, что они ещё открыты.

На практике реализацию последнего метода я видел только на двух сайтах. Первый применяется достаточно часто, второй — тоже.

Но существует ещё один способ, обычно применяющийся, если на сайте есть чат. Но он может быть реализован и при отсутствии чата. Тут не так всё сложно — организуется Comet-обмен с сервером (обычно это 1 запрос в 1-1,5 минуты, так что сервер сильно не загружается запросами). Про работу протокола Comet (есть его аналог BOSH-XMPP) можете прочитать в интернете. Реализовать его сложнее, чем все вышеперечисленные, но эффективность и качество в этом случае наивысшее.

Для реализации Comet на PHP необходимо использовать фреймворк-демон, например, phpDaemon. А если есть возможность использовать серверный Javascript, то можно применить и nodejs. Я категорически рекомендую именно nodejs, потому что phpDaemon сейчас достаточно сырой и сложный в инсталляции и запуске, а nodejs лаконичен и если вы хорошо знаете Javascript, вам дополнительно ничего не придётся изучать (или почти ничего).

Если у Вас возникли дополнительные вопросы по статье — задайте их мне в комментариях. Я получаю уведомления о новых комментариях и всегда стараюсь на них отвечать.

Добавить комментарий