@Wowowo21

Что изучить, чтобы создавать веб-приложения (сервер), которые могут отправлять запросы клиентам (а не наоборот)?

Обычно мы отправляем запрос на сервер - и он возвращает результат. А как сделать наоборот?

Например, чаты. Меня интересует разработка, в которой веб-сервер может сам отправлять запросы своим клиентам (сайтам). Примеры: Вк, чатики, инстаграмы и вот подобные вещи.

Я попытался немного изучить тему, и понял что это относится к асинхронному программированию - так ли это?

Я знаю питон и знаком с Django - можно ли в нем делать такие вещи?
  • Вопрос задан
  • 127 просмотров
Решения вопроса 4
idegree
@idegree
Senior Workaround Developer
Клиент всегда в любом случае делает запрос первым, потому что сервер ничего не знает про клиентов. В случае SSE или Websockets все равно клиент устанавливает соединение, сервер их держит и в случае появления событий рассылает их по установленным соединениям.

Django вам не подойдет (в целом можно, но лучше не надо). Посмотрите в сторону aiohttp. Советую гуглит "aiohttp websocket example" или "aiohttp sse example".
Ответ написан
firedragon
@firedragon
Senior .NET developer
Реверсируйте направление. На каждом клиенте создайте сервер и в вашем сервере пусть будет клиент.
Тогда вы с сервера сможете инициировать соединение в любой момент.
Правда встает вопрос натов и серых адресов, но это уже второй вопрос и он в общем то решается.

ПС а чем вебсокеты не угодили или длинный опрос?
Ответ написан
@niger102
Программист
Если я правильно понял ты говоришь как сделать так чтобы сервер сам отправлял запросы своим клиентам. Значит клиенты у тебя уже есть. Тогда что тебе мешает ? Поставил cron и пусть чекает. Если у тебя нету зарегистрированных клиентов ты о чем вообще говоришь ? Мы все бы жили в шоколаде если бы могли безнаказанно отправлять запросы не зарегистрированным клиентам которые не желают получать от нас запросы. Принцип Double Opt-In. Все клиенты должны согласиться получать от вас запросы. И причем тут асинхронщина ? Если ты про реалтайм соеденения то вебсокеты и js
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы