socket io - отправлять событие каждые X секунд или просто отправлять его после события POST? - PullRequest
0 голосов
/ 01 июня 2018

Я использую сокет IO, и мне было интересно, что было лучше.

Отправка события каждые X секунд для постоянного обновления базы данных или отправки события, например, после события POST, так что это более эффективно.

Я считаю, что обновление X секунд должно быть проще, иможет быть, имеет лучшую масштабируемость, но не знаю, правильно ли это.

РЕДАКТИРОВАТЬ-1: Чтобы дать больше контекста.Приложение для бухгалтерии.Они в основном хотят, чтобы их листы Excel были преобразованы в приложение.У них много данных, поэтому я не знаю, является ли хорошей идеей отправлять событие каждые X секунд.

Спасибо.

1 Ответ

0 голосов
/ 01 июня 2018

Не существует «правильного» пути.Это полностью зависит от потребностей вашего клиента и возможностей вашего сервера.Если клиент нуждается в своевременном обновлении, отправляйте данные с вашего сервера клиенту всякий раз, когда на сервере появляются новые данные.Если клиент должен обновляться только время от времени, то отправляйте ему данные только время от времени.Нет «правильного» пути.Это зависит от вашего приложения.

Всегда эффективнее отправлять данные клиенту только тогда, когда данные действительно изменились и когда клиент действительно заботится о том, что что-то изменилось.Поэтому было бы глупо отправлять клиентское обновление каждые несколько секунд, если данные не так часто меняются.Если у вас есть способ узнать, когда данные изменяются на сервере, используйте это событие, чтобы узнать, когда отправлять данные клиенту, и даже в этом случае не отправляйте его чаще, чем на самом деле хочет знать клиент.

Всегда эффективнее, чтобы сервер выполнял не больше работы, чем фактически требуется клиенту.Такие вещи, как кэширование и отслеживание того, что каждый клиент был отправлен последним, иногда могут сэкономить много работы и для сервера.

Любой дальнейший совет по этому вопросу должен знать гораздо больше о потребностях вашего приложения икак эти конкретные данные вписываются в это и как часто эти данные действительно меняются.

Резюме по этой теме:

  • Отправляйте данные клиенту не чаще, чем это необходимо
  • Отправка данных на клиент, который не изменился с момента последнего изменения, неэффективен для сервера и потребляет пропускную способность.
  • Только вы можете решить, как часто ваш клиент нуждается в обновлениях (это зависитна ваше приложение)
  • Только вы можете проверить влияние на масштабируемость отправки данных каждому клиенту при каждом изменении данных.
  • Кэширование на стороне сервера и отслеживание того, какие данные уже есть у клиентаможет помочь вам избежать отправки данных клиенту, который у него уже есть.
  • Масштабируемость на стороне серверавероятно, во многом связано с тем, сколько одновременных клиентов подключено и как часто меняются данные для их отправки.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...