Теперь Кью работает в режиме чтения

Мы сохранили весь контент, но добавить что-то новое уже нельзя

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

ИнтернетЗачем я это узнал?Вконтакте
Andrey Suslov
  · 78,4 K
Бывший разработчик ВКонтакте  · 24 мая 2016

При использовании браузера понятие онлайна весьма условное, т.к. протокол HTTP основан на транзакциях, а не на постоянном соединении, как протоколы большинства мессенджеров. Браузер пользователя запросил страницу, сервер её сгенерил и отдал, одновременно поимев возможность куда-нибудь залогировать этот факт, и всё. После этого на стороне сервера нет никакой [достаточно надёжной для использования в продакшене] технической возможности понять, открыта ли всё ещё у пользователя эта страница или уже нет. В особенности невозможно по-нормальному отловить момент закрытия единственной вкладки с сайтом и отправить в этот момент запрос про оффлайн.

Поэтому традиционно в вебе считается, что пользователь онлайн какое-то определённое время с момента загрузки последней страницы. У ВКонтакте это время равно 15 минутам, при этом last seen - это то самое время последней загрузки страницы сайта (возможно, шлются ещё какие-то периодические запросы в фоне) или запроса activity.online при использовании приложения. Именно из-за этого получается так, что пользователь был онлайн, а потом ВНЕЗАПНО стал "заходил 15 минут назад". Last seen может быть меньше 15 минут назад в двух случаях:
а) была нажата кнопка "выход" на сайте
б) был отправлен запрос API activity.offline, например, приложенька для Android в него точно умеет

Надеюсь, удовлетворил ваше любопытство.

когда обновление, Гришка?

Руководитель направления по работе с новыми медиа, Mail.Ru  · 24 мая 2016

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

Если нажимать на кнопку "Выйти", то человек сразу же из сети пропадет.

О боже, а что тогда это ? > Last seen может быть меньше 15 минут назад в двух случаях: > > а) была нажата кнопка... Читать дальше
PR, Журналистика. Любитель украинской музыки. Фотографирую мусорки. Люблю трамваи. Порицаю  · 11 окт 2016

Господа неайфоновладельцы! Я вам так завидую! Когда у меня был телефон на Android, я установила чудную программку Kate Mobile, в которой можно включить функцию "Всегда быть оффлайн". Вы не поверите, как часто она меня спасала! От работы в выходные, надоедливого собеседника или глупых вопросов. Просто не открываешь сообщение - и все! Вуаля! Ты в домике!

На айфоне тоже есть такое приложение

Первый

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

Для тех, кому «сложна». Вы – сервер Вконтакте. Сидите такой за столом, читая и отправляя письма. Вам приходят письма-запросы – некие «заказы» на выполнение определённо действия. Например, «пришли все новые мемы в ленту новостей» – вы собираете все посты из подписок этого человека и отправляйте ему в письме. Или «Есть ли новые сообщения?» – смотрите есть ли конверты для... Читать далее
С клиентом на Андроид гадать уже не нужно: перед выходом он успевает отправит специальный запрос «Я не в сети!», и... Читать дальше
Бывает рассказываю что-то интересное  · 30 авг 2016

а мне поддержка ответила более кратко( 

Здравствуйте, Рома!

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

Ваша Команда поддержки

Первый
Студент, просто студент  · 24 мая 2016

Время последнего действия - понятие довольно условное. В Вконтакте тайм-аут онлайна составляет 15 минут. Время последнего онлайна колеблется в районе 10 минут, если пользователь не меняет устройство, с которого сидит, и меняется моментально, если пользователь меняет устройство онлайна. Также время онлайна обновляется, если пользователь разместит запись на своей стене.