WebSocket mantener viva en Python

Python WebSocket mantener viva : Aquí, vamos a aprender cómo enviar WebSocket mantener viva en Python?

websockets utiliza HTTP como mecanismo de transporte inicial, pero mantiene viva la conexión TCP después de la respuesta HTTP se recibe de forma que pueda ser usada class el envío de mensajes entre el cliente y el servidor. La ventaja de usar web de enchufe, nos permite atamos aplicaciones “en tiempo real” mediante el -polling for.

Mantener la conexión WebSocket entre cliente y servidor ayuda a tener una corriente de ser información fluyó sin ninguna distracción. Sin embargo, debido a las excepciones, la conectividad entre el servidor y el cliente podría ser interrumpido. Los ejemplos siguientes demuestran algunas de las posibles maneras de mantener la conexión entre el servidor y el cliente viva.

Pocas opciones para mantener la conexión WebSocket con vida del lado del cliente es

Enviar un latido del corazón o de ping

Con el fin de mantener la sesión activa, el cliente podría mantener el envío de un latido del corazón o un ping al servidor.

@asyncio.coroutine
def _start_loop(self, websocket, event_handler):
while True:
try:
yield from asyncio.wait_for(
self._wait_for_message(websocket, event_handler),
timeout=self.options['timeout']
)
except asyncio.TimeoutError:
yield from websocket.pong()
log.debug("Sending heartbeat...")
continue

Uso del decorador de reintento: https://pypi.org/project/retry/

El decorador de reintento, cada vez que hay WebSocketConnectionClosedException , vuelve a conectar con el servidor de WebSocket en un retraso de 2 segundos , manteniendo la sesión activa.

El retardo es un valor configurable que se podría variar basado en el requisito.

@retry(websocket.WebSocketConnectionClosedException, delay=2, logger=None)
def start_wss_client():
'''
        Summary:
            This method initiates the wss connectivity
    '''
wss_gateway_host = "ws://{0}:{1}".format(wss_gateway_host, wss_gateway_port)
web_socket = websocket.WebSocketApp(wss_gateway_host,
on_message=on_message,
on_error=on_error,
on_close=on_close)
web_socket.on_open = on_open
web_socket.run_forever()


Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *