Вы хотите, чтобы процесс выполнялся с помощью клиента или сервера? Другими словами, хотите ли вы нажимать новые данные клиентам сразу, как только они будут доступны, или вы предпочтете, чтобы клиенты запрашивали новые данные, когда они сочтут нужным, хотя это может быть не один раз/секунду? В чем заключается вероятность того, что клиент сможет оставаться в ожидании ответа? Даже если вы ожидаете, что события будут происходить раз в секунду, сколько времени потребуется между запросом клиента и возвратом с сервера? Если это длиннее секунды, я бы ожидал, что вы настроитесь на то, чтобы направить события клиентам, хотя, наоборот, я ожидаю, что опрос будет в порядке. Если ответ длится дольше, чем интервал, то вы по существу потоки, так как к моменту, когда клиент получает последний, готово новое событие, поэтому клиент может по существу постоянно опросить и всегда получать события - в этом случае потоковое данные на самом деле будут более легкими, поскольку вы удаляете служебные данные соединения/согласования из процесса.
Я подозреваю, что загрузка сервера будет выше для клиентской (pull) подписки вместо потоковой конфигурации, так как клиенту придется повторно согласовывать соединение каждый раз, вместо того, чтобы оставлять открытое соединение, но каждое открытое соединение в потоковой модели потребует также ресурсов сервера. Это зависит от того, какой компромисс между тем, насколько агрессивным является ваш переговорный процесс, и насколько требуется память/обработка для каждого открытого соединения. Я не эксперт, так что могут быть и другие факторы.
ОБНОВЛЕНИЕ: This guy рассказывает о компромиссах между длинным опросом и потоковой передачей, и он, кажется, говорит, что с помощью протокола HTTP/1.1 процесс повторного согласования соединений является тривиальным, так что это не так много.
Привет, rwmnau, ссылка, которую вы указали, освещает. Чтобы ответить на ваши вопросы, я хотел бы сделать данные пользователями, как только они будут доступны. – jcee14
Если вы хотите как можно скорее отправить данные пользователям, я думаю, что выбор должен быть потоковым, так как это будет поддерживать push-based соединение. С настройкой pull вы ожидаете, что клиенты спросят, но с нажатием они будут иметь данные, как только вы их дадите им. Дайте мне знать, что вы в конечном итоге выбираете и почему! – SqlRyan