Websockets se diseñaron para una comunicación bidireccional rápida en el navegador. Asumiendo que tiene control sobre el servidor y un cliente nativo (digamos una aplicación iOS o Mac), ¿hay buenas razones o situaciones para comunicarse a través de un websocket en lugar de usar una biblioteca HTTP?¿Hay alguna buena razón para usar Websockets fuera del navegador?
Respuesta
voy a responder un par de preguntas diferentes que se espera termina respondiendo a la pregunta:
¿Hay una razón para utilizar WebSockets de un cliente en lugar de HTTP? Sí.
WebSockets es bidireccional, dúplex completo, de baja latencia y baja sobrecarga en comparación con HTTP.
Parte de la menor latencia y sobrecarga en comparación con HTTP/AJAX/COMET es que no tiene que volver a establecer la conexión para cada solicitud.
¿Hay alguna razón para usar WebSockets de un cliente en lugar de sockets sin formato? Sí.
El handshake inicial de WebSockets es compatible con el servidor HTTP (y tiene algunos mecanismos de seguridad de intercambio de origen y hash). Permite que los servidores web se actualicen fácilmente para admitir el redireccionamiento o el proxy para las conexiones de WebSockets a la aplicación real del servidor WebSockets.
Otra ventaja de WebSockets es que es un protocolo enmarcado que permite a la aplicación enfocarse en una funcionalidad útil sin tener que lidiar con su propio encuadre y almacenamiento en búfer.
Es bastante fácil agregar soporte WebSockets a los servidores de socket TCP existentes o proxy a través de algo como wsproxy. Descargo de responsabilidad: hice wsproxy.
Desde el punto de vista del servidor WebSockets es una gran ventaja, ya que se puede acceder a través de clientes independientes o mediante navegadores. Esto significa que habrá más y más servicios que actualmente están basados en socket TCP y que estarán expuestos a través de WebSockets. Por lo tanto, agregar compatibilidad con WebSockets a un cliente ahora dará sus frutos en el futuro.
- 1. ¿Alguna vez hay una buena razón para usar Insertion Sort?
- 2. ¿Alguna vez hay una buena razón para usar eval()?
- 3. ¿Hay alguna razón para usar esto->
- 4. ¿Hay alguna razón para usar System.Uri?
- 5. JS doble exclamación: ¿hay alguna buena razón para usarlo?
- 6. ¿Hay alguna buena razón para usar "printf" en lugar de "imprimir" en java?
- 7. ¿Hay alguna buena razón para usar valores hexadecimales sobre los valores de color RGB en CSS?
- 8. ActionScript: ¿Hay alguna vez una buena razón para usar 'como' casting?
- 9. ¿Hay alguna razón para usar `remove` fuera de la expresión borrar-eliminar?
- 10. ¿Hay alguna razón para lanzar una DivideByZeroException?
- 11. ¿Hay alguna buena razón para usar el cambio de bit a excepción de la matemática rápida?
- 12. ¿Hay alguna razón para usar SGML en lugar de XML?
- 13. ¿Hay alguna razón negativa para usar una solución N-Tier?
- 14. ¿Hay alguna razón para usar propiedades privadas en C#?
- 15. ¿Hay alguna razón para no usar las propiedades 'protegidas'?
- 16. ¿Hay alguna razón para no usar "esto" ("Self", "Me", ...)?
- 17. ¿Hay alguna razón para usar Object.create() o new en JavaScript?
- 18. ¿Hay alguna razón para no usar AssertionHelper con NUnit?
- 19. ¿Alguna razón para no usar XmlSerializer?
- 20. ¿Alguna razón importante para no usar AJAX?
- 21. ¿Hay alguna buena razón que no debería usar - (guión) en los nombres de campo en MySQL?
- 22. Buena razón para usar java.util.Date en una API
- 23. ¿Hay alguna razón para usar clases en Python si solo hay una clase en el programa?
- 24. ¿Hay alguna buena razón para no utilizar unicode en lugar de cadena?
- 25. ¿Hay alguna buena razón para NO utilizar jQuery en lugar de JavaScript antiguo?
- 26. ¿Hay alguna buena alternativa para Visio/PowerPoint?
- 27. Necesito una muy buena razón para usar Python
- 28. ¿Hay alguna razón para tener una propiedad sin getter?
- 29. ¿Hay alguna referencia/documentación del navegador Android?
- 30. ¿Hay alguna razón para precargar encajables de los recursos?