Как можно определить открыт ли сайт в браузере, у vk же как то отображается, если ты онлайн ? И второй вопрос - как сделать, чтобы было видно, что человек набирает текст(опять же как в vk) ? Там наверно на поле ввода событие срабатывает, а вот как и что скрипт отправляет, я не догадался.
websockets самый быстрый вариант, сейчас много новых браузеров его поддерживает, можно установить Socket.IO чтобы знать пользователь в сети или нет, можно в redis писать его последнюю активность, и раз в 10 минут всех удалять, у кого активности не было больше 10 минут на счёт информирования то websockets от одного клиенты посылает на сервер информацию, а уже сервер отправляет другому, что тот начал печатать
Я почитал про вебсокетс и так понял - это изменённый хттп. Типа tcp соединение открывается один раз и потом удерживается . Непонятно только как будет работать пхп машина, потому что она то с запросами работает, пришёл запрос - запускаем пхп, пхп отрабатывет, умирает, и ждёт нового запроса.
тупанул . сервер будет запускать пхп когда будет приходить GET или POST, также как он это раньше делал. меня сбило с толку что websockets называют асинхронным протоколом.
люблю темы от @machetero --- Добавлено --- вот, кстати, в дополнение к @Игоряну: https://opensource.mail.ru/Centrifugo https://habrahabr.ru/company/mailru/blog/197044/ https://habrahabr.ru/company/mailru/blog/280346/
@machetero На пхп это делать дикий головняк. Пхп блокирующий. Пхп текущий памятью и тп. Центрифуга простая и удобная.
смотри. я щас подумал. вообщем открывает чел страницу vk, js-скрипт соединяется с сервером(ещё отправляя куку авторизации) по протоколу websockets, и сервер знает, что с только что пришедшей кукой и ip-адресом, с которого она пришла, есть чувак. дальше серверный скрипт просто ждёт пока для этой куки не останеться tcp-соединений. не осталось - значит нет ни одного js-скрипта, а это значит все страницы закрыты. как-то так. Единственное, что мне интересно, дак это на каких языках пишут серверную часть для такого. И как работают интерпретаторы для такого. --- Добавлено --- ну тут типа я предположил что websockets соединения рвуться если открывший их js-скрипт закрывается