В настоящее время мы разрабатываем сервер, посредством которого клиент запрашивает интерес к изменениям определенных элементов данных, и когда эти данные изменяются, сервер отправляет данные обратно клиенту. В настоящее время ведутся активные дебаты о том, не лучше ли для клиента запрашивать эти данные.
Что считается идеальным с точки зрения производительности, масштабируемости и сетевой нагрузки метода передачи данных в среде, близкой к реальному времени?
Обновлять: Вот Связь, который дает пищу для размышлений относительно обновлений пользовательского интерфейса.


Пока клиент инициирует соединение (чтобы избежать проблем с брандмауэром и NAT), все в порядке.
Если вам нужно отправить несколько разных типов данных, вы можете захотеть, чтобы клиент указывал, какой тип он хочет, но это требуется только один раз для каждого соединения. Затем вы можете заставить сервер продолжать посылать обновления по мере их поступления.
Было бы меньше сетевого трафика, если бы сервер отправлял обновления без того, чтобы клиент постоянно запрашивал обновления.
Что у вас на стороне клиента? Многие брандмауэры разрешают исходящие запросы, но блокируют входящие. Другими словами, вытягивание может быть вашим единственным вариантом, если вы выходите через Интернет, если только вы не отправляете электронные письма.
Вероятно, не существует идеального метода для каждой ситуации, но пуш обычно лучше и используется чаще. Это позволяет оптимизировать кэширование сервера и передачу данных, что способствует повышению производительности и масштабируемости, а также немного сокращает сетевой трафик, избегая клиентских запросов и пустых ответов. Для сервера может быть важным преимуществом работать в собственном темпе и предоставлять клиентам данные, когда они будут готовы.
Отраслевые стандарты, такие как OPC, GID, поддерживают оба. Сервер отправляет обновления подписанным клиентам, но клиент может извлекать некоторые редко используемые данные, не беспокоясь о подписке.
У нас есть собственное клиентское программное обеспечение, и на данном этапе мы не работаем через Интернет.