Solución:
También puede establecer parámetros en el lado del servidor con Flask-SocketIO:
socketio = SocketIO(ping_timeout=10, ping_interval=5)
:param ping_timeout: The time in seconds that the client waits for the
server to respond before disconnecting. The default is
60 seconds.
:param ping_interval: The interval in seconds at which the client pings
the server. The default is 25 seconds.
El problema del panorama general es que si su servidor no responde a los paquetes de mantenimiento activo durante un período prolongado de tiempo, el cliente interrumpirá la conexión e intentará volver a conectarse. Si no puede volver a conectarse, eventualmente dejará de intentarlo.
Dicho esto, si desea modificar la configuración de la lógica de reintento, puede enviar un objeto de opciones como segundo argumento a su .connect()
llama. Según la documentación aquí, hay control sobre las siguientes opciones:
Opciones:
- reconexión si volver a conectarse automáticamente (verdadero)
- reconexión Retrasa cuánto tiempo esperar antes de intentar una nueva reconexión (1000)
- reconnectionDelayMax cantidad máxima de tiempo de espera entre reconexiones (5000). Cada intento aumenta la reconexión en la cantidad especificada por recnectionDelay.
- timeout tiempo de espera de conexión antes de que se emitan los eventos connect_error y connect_timeout (20000)
Por lo tanto, si desea que siga intentando reconectarse automáticamente durante un período de tiempo mucho más largo, puede aumentar los tiempos para las últimas tres opciones.