ANÁLISIS DEL USO DE WEBSOCKETS PARA IMPLEMENTAR APLICACIONES WEB EN TIEMPO REAL

José Guillermo Fierro Mendoza, Francisco Gutiérrez Vera, Julio Armando Asato España, Claudia Cristina Ortega González, Eduardo Alejandro Noria Juárez

Resumen


Resumen

En este artículo, en base al análisis del comportamiento del protocolo para la transferencia de datos de una aplicación web que utiliza WebSockets (WS), se establecen los beneficios de integrarlo en las aplicaciones que requieren ejecutarse en tiempo real o en las que incluso el inicio de la comunicación puede originarse en el lado del cliente o en el lado del servidor, como es el caso de monitoreo remoto de procesos, juegos interactivos, chats con retroalimentación del estado de los usuarios, entre otras aplicaciones. Para propósitos de pruebas se ha implementado una aplicación web de chat, donde el servidor recibe mensajes de clientes que se conectan mediante un navegador y que al recibir un nuevo mensaje de un usuario emite a todos los usuarios conectados un mensaje para que sea desplegado en un bloque de la página del navegador. Para establecer puntos de evaluación se analiza el comportamiento del protocolo durante la transferencia de datos, se analizan parámetros como el tiempo de carga y la latencia para evaluar el comportamiento del protocolo, mediante pruebas de stress utilizando una herramienta de software como JMeter. Las pruebas realizadas demuestran que la latencia utilizando el protocolo es baja y que una gran cantidad de usuarios conectados no afecta el desempeño del protocolo WS durante la transferencia de datos.

Palabra(s) Clave: Aplicaciones web, Latencia, Protocolo WebSockets, Tiempo real.

 

Abstract

This article, based on the analysis of the behavior of the protocol for the transfer of data from a web application using WebSockets (WS), the benefits of integrating it in applications that require real-time execution or in which even the start is established Communication can originate on the client side or on the server side, as is the case of remote monitoring of processes, interactive games, chats with feedback on the status of users, among other applications. For testing purposes a web chat application has been implemented, where the server receives messages from clients that are connected through a browser and upon receiving a new message from a user sends all the connected users a message to be displayed in a block of the browser page. To establish evaluation points, the behavior of the protocol is analyzed during the transfer of data, parameters such as loading time and latency are analyzed to evaluate the behavior of the protocol, through stress tests using a software tool such as JMeter. The tests carried out show that the latency using the protocol is low and that a large number of connected users do not affect the performance of the WS protocol during data transfer.

Keywords: Latency, Real time, Web applications, WebSockets protocol.


Texto completo:

227-238 PDF

Referencias


Cantelon, M., Harter, M., Holowaychuk, T. J. & Rajlich, N. (2014). Node. js in Action. E.U.A.: Manning Publications Co.

Clements, D. M. (2014). Node Cookbook (2a Ed.). Birmingham, U.K.: Packt Publishing Ltd.

Rai, R. (2013). Socket. IO Real-time Web Application Development. Birmingham, U.K.: Packt Publishing Ltd.

Eldritch, M. (2017, 9 marzo). Escribiendo aplicaciones con WebSockets: https://goo.gl/nXf4ym.

Hanson, J. (2014). What is HTTP Long Polling? De PubNub: https://www.pubnub.com/blog/2014-12-01-http-long-polling/

Kaazing Co. (2017). Demos: https://kaazing.com/demos/.

Madan, D. (2015, April 17). Unleashing the power of HTML5 WebSocket for Internet of Things. De HCL Blogs: https://goo.gl/bfNoZm.

Sommerville, I. (2011). Ingeniería de Software (9ª Ed.). United States: Pearson Education, Inc.

Tikhanski, D. (2016). WebSocket Testing With Apache JMeter: https://www.blazemeter.com/blog/websocket-testing-apache-jmeter.

Ubl, M. & Kitamura, E. (2010). Introducción a los WebSockets: incorporación de sockets a la Web: https://www.html5rocks.com/es/ tutorials/websockets/basics/.


Enlaces refback

  • No hay ningún enlace refback.