- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
VK приобрела 70% в структуре компании-разработчика red_mad_robot
Которая участвовала в создании RuStore
Оксана Мамчуева
Все что нужно знать о DDоS-атаках грамотному менеджеру
И как реагировать на "пожар", когда неизвестно, где хранятся "огнетушители
Антон Никонов
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Добрый вечер.
Собираюсь писать сайт (форум), хотелось бы делать с поддержкой HistoryAPI, соответственно, пользователи должны моментально уведомляться о новых сообщениях в той теме, в которой они сейчас находятся. То же самое и с личными сообщениями.
Приглянулся модуль nginx-push-stream-module, все вроде бы хорошо, но в этом случае невозможно проверить личность пользователя (и, собственно, сделать проверку, может ли подключаться пользователь к данному каналу).
Единственное, что приходит в голову - это шифрование имен каналов, но этого явно будет недостаточно.
Как вообще реализовываются подобные системы? (с проверкой подлинности пользователя)
Имя канала - набор случайных символов. Так же работают и обычные сессии - при каждом запросе клиент гоняет на сервер идентификатор сессии, состоящий из некоторого количества случайных символов
Набор СЛУЧАЙНЫХ символов - не подходит, т.к. надо будет знать, куда отправлять. Только если что-то типа $channel_name = md5($name), но в этом случае при сильном желании те, кому нужно будет получать уведомления для данного канала различными способами смогут получить доступ.
Имя канала = идентификатор сессии и туда отправлять данные - вариант, но в этом случае придется хранить идентификаторы сессий пользователя и, собственно, хранить список тех, кто должен получить уведомление (для каждого источника, например, тема на форуме).
Можно сделать паблик каналы и приватные каналы, но у меня из паблик данных будут только новости на главной, так что, не особо имеет смысл. Конечно, можно определять доступность страницы (например, темы) для гостей (а значит, это могут читать все пользователи), но это лишнее, как по мне.
В ASP.NET (SignalR) есть возможность проверки личности пользователя как при подключении, так и при передаче команды хабу. Но там, как я понимаю, это реализовано при помощи модуля для IIS, на php такое невозможно.
Гоняйте json по каналу, положите туда логин и куку авторизации, а в php-обрабтчике это проверяйте
Немного не понял. Вы предлагаете просто запрашивать php скрипт, аля long-polling? Я планирую ставить nginx + php. Не помрет ли php от большого количества висячих запросов?
Так, кажется я не о том подумал. Вы поподробнее о задаче. Нужно не давать подписываться на прослушивание канала некоторым подписчикам или не давать им публиковать?
Не давать подписываться на каналы.
Например, есть тема на форуме. Есть канал thread_123, где 123 - айди темы. Собственно на этот канал должны иметь возможность подписываться только те, кто может видеть данную тему.
Ну если такая схема как:
клиент -> авторизация -> сервер возвращает список каналов, на которые подписываться можно
не устраивает (имена каналов неугадываемые случайные), то тогда только форки - https://github.com/Kronuz/nginx_http_push_module (сам не пробовал)
Либо не передавать информацию, которую не должны видеть неавторизованные пользователи. Например, не запрещать никому подписываться на каналы тем форума, а push'ить сервером подписчикам только id новых сообщений. Права проверять соответственно при загрузке этих сообщений.
Отличная идея. Спасибо. Так и сделаю.
Берите Meteor и не партесь - реально вменяемый движок с минимальным порогом вхождения, пара вечеров - и в дамках 😂 юзвери не "уведомляться" будут, а просто увидят новые сабжи без обновления страницы.
всё одно по настоящему реактивное приложение иначе чем на Ноде сейчас не сделать...