Red de conocimiento informático - Problemas con los teléfonos móviles - Cómo TCPServer resuelve el problema del cambio de IP del puerto del servidor

Cómo TCPServer resuelve el problema del cambio de IP del puerto del servidor

El método de cambio es el siguiente:

El servidor utiliza el protocolo tcp de netty como método de comunicación cliente-servidor. La ventaja de tcp es que la conexión con el cliente es una conexión larga. , el formato del mensaje está optimizado y la entrega es relativamente rápida y el servidor puede enviar mensajes push. Pero el problema ahora es que la IP de exportación de la red de la empresa cambia a menudo y TCP determina la conexión del cliente en función de IP+puerto, por lo que a medida que cambia la IP, la conexión debe fallar.

El juego puede requerir que los jugadores inicien sesión nuevamente. Esto es inaceptable para los jugadores y equivale a ser expulsado del juego sin ningún motivo.

Sin embargo, muchas empresas solo tienen unas pocas IP de exportación, lo que demuestra que esta situación es relativamente común, y software como QQ, que utiliza protocolos TCP o UDP, también puede adaptarse muy bien a esta situación. , por lo que debe haber una solución adecuada. Una forma que me viene a la mente ahora es que cada solicitud TCP transporta información de la sesión, que se puede almacenar con un byte de 64 bits que marca el ID. Esto aumentará muy poco el tráfico de red al protocolo y el servidor necesita procesar cada solicitud. El ID de sesión se procesa para determinar si es válido. Si es válido, puede comunicarse directamente con el servidor. Si no es válido, debe iniciar sesión nuevamente para obtener un nuevo ID de sesión.

Otro problema importante es que no se puede garantizar la conexión TCP del cliente. Los jugadores pueden cerrar repentinamente el navegador sin enviar un mensaje de cierre al servidor. Si el servidor crea un objeto para cada conexión de cliente, necesita administrar el ciclo de vida del objeto y establecer un tiempo de caducidad, como 30 minutos, si no se realiza ninguna operación durante 30 minutos, se destruirá automáticamente. Se produce la acumulación de más y más objetos.