У меня есть требование, при котором я должен отправлять постоянные обновления своим клиентам. Клиент является браузером в этом случае. У нас есть некоторые данные, которые обновляются каждую секунду, поэтому, когда клиент подключается к нашему серверу, мы поддерживаем постоянное соединение и продолжаем передавать данные клиенту.
Я ищу предложения этой реализации на стороне сервера. В основном то, что мне нужно, это:
1. клиент подключается к серверу. Я поддерживаю сокет и метаданные о сокете. метаданные содержат какие обновления нужно отправить этому клиенту
2. серверный процесс теперь ждет новых клиентских подключений
3. Еще один процесс будет иметь список всех открытых сокетов и будет проходить через каждый из них и при необходимости отправлять обновления.
Можем ли мы сделать что-то подобное в модуле Apache:
1. Процесс Apache получает новое соединение. Поддерживает состояние связи. Он сохраняет состояние в некоторой глобальной памяти и возвращает обратно к корневому процессу, чтобы показать, что это сделано, чтобы он мог принять новое соединение
2. хотя процесс Apache возвратил статус корневому процессу, он также выполняется параллельно, проходя через глобальное хранилище и отправляя обновления клиенту, если таковые имеются
Так что процесс Apache может делать эти вещи:
1. Имейте больше чем одно соединение, связанное с этим
2. Асинхронно ожидает новое соединение и одновременно обрабатывает предыдущие соединения?