@maxru просто вам кажется мой способ чем-то сложным, но на самом деле если однажды разобраться, то потом не просто проще будет, но это и вообще откроет глаза на многие вещи, связанные с вебом, о которых ранее не задумывались.
Тем не менее, ваш способ как fallback-режим пригодится для старых браузеров.
@maxru а зачем делать интервальные запросы из js и писать в БД, если можно установить единожды соединение и следить за его состоянием через события? Это в принципе менее ресурсоёмко, не нужно ничего в БД писать. К тому же, это имеет дальнейший потенциал для расширения функциональности, как например оповещение пользователя об обновлениях на сайте.
@maxru почитайте внимательно вопрос автора: "хотелось бы добавить проверку присутствия зарегистрированных пользователей на сайте, что бы можно было выводить статус онлайн\оффлайн". Что вам даст статистика по хитам? Вот к примеру, пользователь сидит читает страницу 5 минут, а потом пошёл потрепаться по телефону. Прошло 20 минут. Как вам поможет Redis узнать он в оффлайне или нет?
@maxru Redis это всего лишь БД, а не веб-сервер. Реально, написать всё это дело можно даже по туториалу с оф.сайта, там только нет хендлера сессий и примеров с асинхронными таймерами.
@YuriyPrudnikov да, сокет держится всё время открытым.
Вопрос про закрытие соединений хороший и правильный. Придется написать обработчик сессий, он не сложный, но всё же не "в 25 строк".
Алгоритм управления соединениями простой. Если соединение отвалилось (плохая связь или закрыли вкладку) и не произошло нового подключения со знакомой сессией в течении таймаута, значит пользователь ушёл в оффлайн. Если серьёзно заинтересуетесь, то у меня есть конкретный пример реализации сессий и управления соединениями.
Что значит только с неблокирующими? А как например производить обработку тяжелых загруженных файлов, например excel или обрабатывать фотки по 10Мб? Нода повесится на таких задачах, в то время для php ничего особенного в этом нет.
@vazonov тогда в чём сложность? API в обоих случаях предоставляет возможность поиска и даже рекомендаций. Парсить ничего не надо, отдаются структурированные данные.
@Richard_Ferlow да не за что. Зря это они конечно допускают отсутствие подписи, видимо считают, что SSL хватит за глаза :)
Я сейчас как раз делаю процессинг для интернет платежей, у нас это будет обязательный параметр. Правда обычный md5, смысла в более сильном хэше нет.