Задать вопрос
xenon
@xenon
Too drunk to fsck

Как по сети оповестить одного из сотен-тысяч клиентов?

Клиент-серверная архитектура (HTTP), у сервера могут быть сотни или тысячи клиентов, но они все мало работают с сервером (например, для них появляется что-то новое раз в час или даже раз в неделю). Но когда появится что-то новое для клиента, то хочется как-то быстро "пнуть", оповестить клиентское приложение с сервера. (Даже никакой информации передавать не надо, достаточно просто чтоб на клиент пришел сигнал, а там уже он полезет на сервер и разберется)

Клиент - собственное приложение, на python, крутится на linux (десктоп).

Как организовать это оповещение? Хочется решение и простое и безопасное и легкое для сервера.
Наверное, подошел бы RabbitMQ или другой message broker, но не хочется пускать в rabbitmq много не доверенных клиентов. (Безопасно ли это?)

Сейчас рабочая версия - сделать websocket сервер и через него оповещать. Но это тоже не очень нравится:
1. Все равно будут сотни коннектов (даже пустых), это, может быть нагрузкой на сервер
2. Как поведут себя коннекты если по нему сутки не будет ничего пролетать?
3. Есть ощущение, что это будет какой-то "велосипед", повторение уже созданной задачи.

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

Может быть есть даже сервис, чтобы на своем железе ничего не крутить, а мое серверное приложение само будет клиентом для сервиса, отсылать оповещение в сервис, откуда уже его будут получать клиенты?
  • Вопрос задан
  • 285 просмотров
Подписаться 3 14 комментариев
Подписчики вопроса 3 К ответам на вопрос (1)