Есть ли необходимость / преимущество вызова API с использованием службы клиента http при использовании веб-сокетов в угловых? - PullRequest
1 голос
/ 01 ноября 2019

Я пытаюсь научиться использовать socket.io, создав простое приложение для чата с использованием библиотеки socket.io и стека MEAN.

Из рассмотрения некоторых проектов с открытым исходным кодом (, как этот) Я видел, что клиент, в основном при выполнении логики чата, связывается с сервером через веб-сокеты, а не через службу http-клиента, предоставляемую angular.

Означает ли это, что при использовании веб-сокетов дляобновления в реальном времени нет необходимости использовать http для связи с сервером?

1 Ответ

1 голос
/ 01 ноября 2019

Наверняка нет. Однако это не вопрос углов, это просто выбор правильного инструмента для правильной вещи.

Короче говоря:

  • Если это модель запроса / ответа, тогда используйтеHTTP. Почему?
    1. Потому что с ним легче обращаться. Прокси, днс и балансировщики нагрузки не нуждаются в дополнительной настройке. Веб-сокеты делают.
    2. Вы уже настроили 1, так что это не проблема. Как вы будете обрабатывать кеширование, маршрутизацию, gziping, SEO и все готовые вещи, такие как протокол http и дескриптор rest-apis? Все, что вы создаете, все коммуникации требуют собственной безопасности, шаблонов проектирования и т. Д.
    3. Как вы будете обрабатывать состояние сетевых сокетов? В настоящее время они поддерживают только вертикальное масштабирование, в то время как остальные apis масштабируются как по горизонтали, так и по вертикали.

Если вам действительно нужен полнодуплексный обмен данными (есть только принудительная передача сервера без сокетов),тогда вам следует ограничить использование веб-сокетов теми случаями, когда вам это действительно нужно.

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

Я мог бы продолжить, но я думаю, вы понимаете смысл.

...