Не обновляют ли страницы использование NodeJS / Socket.IO и вызывают ли они слишком большую нагрузку на сервер при создании новых соединений? - PullRequest
0 голосов
/ 03 марта 2012

В текущем веб-приложении, где пользовательский интерфейс не может быть изменен с учетом обновлений раздела страницы, а не обновления всей страницы (ссылки на другие страницы и т. Д.). В конце концов это будет помещено в не обновляемый div, однако на данный момент ссылки на страницы будут уничтожать / создавать веб-работника, вызывая создание нового сокет-соединения. Что является утечкой в ​​системе, когда приходится создавать новые сокетные соединения с помощью Socket.IO?

Учитывая, что вся страница обновится, это все еще хорошее решение?

- ОБНОВЛЕНИЕ -

Приложение для этого предназначено для системных push-уведомлений, таких как логин «друга» и т. Д. Я вижу это как нечто похожее на личное сообщение в среде чата. Я хотел бы транслировать эти события, и клиентская сторона должна была бы решить, кто на самом деле увидит обновления. Звучит как правильный способ сделать это?

1 Ответ

2 голосов
/ 03 марта 2012

Здесь много факторов.Я перечислю несколько из них:

  1. Какой браузер использует пользователь и какова его система?

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

  2. Какой транспорт у вас включен?

    Вы можете настроить Socket.IO для использования различных типов транспорта , включая WebSocket, XHR-опрос, JSONP-опрос и даже Flash.Какой транспорт на самом деле будет использоваться, будет зависеть от того, что вы настроили и от того, что поддерживает браузер пользователя.

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

  3. Что вы делаете, когда используется сокет.Соединение ввода-вывода установлено, и когда происходит разъединение?

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

  4. Как часто происходят обновления страниц?

    Это случайно, когда пользователь нажимает на ссылку?Или у вас есть что-то, что заставляет страницу обновляться очень часто?

  5. Какое оборудование и подключение имеют ваши серверы?

    ЭтоЭто довольно большая переменная, которую трудно исправить.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...