Если приложение уже открыто WebSocket
для прямых трансляций, должен ли я использовать его AJAX
для других коммуникаций с сервером?
Поскольку соединение уже открыто, мы должны использовать его для запросов, которые Request/Response
не являются в реальном времени?
Я предпочитаю RESTful HTTP
запросы, потому что нахожу их легче отлаживать. Вы можете использовать браузер с URL или curl, чтобы проверить, что возвращает API. Вам не нужно писать код, чтобы открыть WebSocket
.
Было бы странно иметь RESTful HTTP API
и WebSocket
в одном приложении?
rest
ajax
websockets
Марк
источник
источник
Ответы:
Одна из основных целей разработки Websockets заключается в том, что он позволяет передавать протоколы HTTP и Websocket через один и тот же порт. Это достигается за счет явного требования клиента выполнить рукопожатие Websocket с запросом на обновление HTTP. Таким образом, сервер может обрабатывать стандартное соединение HTTP-запроса, а также запрос HTTP Upgrade, который теперь обновляется до постоянного двунаправленного дуплексного соединения.
Так что да, это, безусловно, допустимый вариант использования, однако, СЛЕДУЕТ ли вам делать это для своего конкретного приложения, это совсем другой вопрос. Веб-сокеты полезны и имеют смысл, когда у вас есть сценарии, когда сервер должен иметь возможность отправлять незапрошенные данные клиенту (прямые каналы). Протокол HTTP и службы REST полезны, когда вы хотите заблокировать синхронный запрос данных клиентом.
Если ваши требования таковы, что оба из них имеют смысл для вашего приложения, то вы обязательно должны использовать оба. Однако, если ваше единственное взаимодействие с сервером основано на прямом эфире, тогда службы REST не подходят. Я думаю, что легкость отладки должна иметь довольно низкое значение с точки зрения атрибутов качества системы , для которых вы должны разрабатывать свой дизайн.
источник