Si una aplicación ya está abierta WebSocket
para transmisiones en vivo, ¿debería usarla AJAX
para otras comunicaciones con el servidor?
Debido a que la conexión ya está abierta, ¿deberíamos usarla para solicitudes que son Request/Response
y no en tiempo real?
Prefiero las RESTful HTTP
solicitudes porque las encuentro más fáciles de depurar. Puede usar un navegador con URL o rizos para probar lo que devuelve la API. No tiene que escribir código para abrir a WebSocket
.
¿Sería extraño tener RESTful HTTP API
una y WebSocket
en la misma aplicación?
rest
ajax
websockets
Bagazo
fuente
fuente
Respuestas:
Uno de los objetivos principales de diseño de Websockets es que permite que los protocolos HTTP y Websocket se comuniquen a través del mismo puerto. Lo logra al exigir explícitamente a un cliente que realice un protocolo de enlace Websocket con una solicitud de actualización HTTP. De esta manera, el servidor puede manejar una conexión de solicitud HTTP estándar, así como una solicitud de actualización HTTP que ahora se actualiza a una conexión dúplex bidireccional persistente.
Entonces, sí, este es definitivamente un caso de uso válido, sin embargo, si DEBERÍA hacer esto para su aplicación específica es un asunto completamente diferente. Los Websockets son útiles y tienen sentido cuando tiene escenarios en los que el servidor debe tener la capacidad de enviar datos no solicitados al cliente (transmisiones en vivo). El protocolo HTTP y los servicios REST son útiles cuando desea bloquear la solicitud de datos de clientes síncronos.
Si sus requisitos son tales que ambos tienen sentido para su aplicación, entonces, por supuesto, debe usar ambos. Sin embargo, si su única interacción con el servidor se basa en la transmisión en vivo, entonces los servicios REST no son apropiados. Creo que la facilidad de depuración debe tener una importancia bastante baja en términos de Atributos de calidad del sistema para los que debe diseñar su diseño.
fuente