Redes - jackgris/wikiLibGDX_es GitHub Wiki
7 Redes
LibGDX incluye algunas clases para realizar operaciones de red multiplataforma. Estas clases se conocen más comúnmente como Gdx.net (docs) (fuente)
Características
- Peticiones HTTP cross-platform
- Soporte sockets clientes y servidor TCP Multiplataforma (excluído GWT) con opciones configurables
- La configuración del cliente y del servidor TCP están optimizadas destinadas para baja latencia
- El acceso al navegador cross-platform. (ej: Se puede crear un enlace a su sitio web en el juego y se abrirá el navegador en todas las plataformas.)
Implementación
Explicación de las Clases:
- Net.java es una interfaz que se utiliza para la creación de redes multiplataforma. Aquí es donde usted puede conseguir los objetos necesarios para comunicarse con la red.
- Socket.java es una interfaz que le proporciona la dirección de socket remoto, el estado de conexión, y java.io.InputStream y java.io.OutputStream para trabajar con el socket.
- SocketHints.java es una clase que se utiliza para configurar los sockets clientes TCP
- ServerSocket.java es una interfaz que se utiliza para crear sockets servidores TCP. Proporciona el método estándar accept() para conseguir un cliente TCP que conectado.
- ServerSocketHints.java es una clase que se utiliza para configurar los sockets del servidor TCP.
- HttpStatus.java es una clase que se utiliza para brindarnos una forma fácil de ver el código de estado que es devuelto.
- HttpParameterUtils.java es una clase que se utiliza para proporcionar métodos de utiles para las peticiones HTTP.
Para crear un socket cliente TCP use este pequeño trozo de código:
Socket socket = Gdx.net.newClientSocket(Protocol protocol, String host, int port, SocketHints hints);
Para crear un socket servidor TCP use esto:
ServerSocket server = Gdx.net.newServerSocket(Protocol protocol, int port, ServerSocketHints hints);
Para enviar una solicitud HTTP use esto:
Gdx.net.sendHttpRequest(HttpRequest httpRequest, HttpResponseListener httpResponseListener);
Para abrir el navegador sistema use esto:
Gdx.net.openURI(String URI)
Notas
Hay varias cosas a tener en cuenta cuando se trabaja con la creación de redes en diferentes plataformas.
- Los sockets clientes y servidor TCP no funcionan en GWT. Esto es debido a que java.net no está soportado en GWT y no es una alternativa viable en este punto que no sea websockets.
- Abrir el navegador no es compatible en el back-end sin cabeza, Android Daydreams o Android Live Wallpapers. Esto es debido a las limitaciones de la aplicación y/o de la plataforma.
- En Android: Debe tener el permiso siguiente declarado en el archivo AndroidManifest.xml para acceder a la red:
<uses-permission android:name="android.permission.INTERNET" />
- En Android: No se puede acceder a la red desde el hilo principal sin desactivar el modo estricto. Esto se hace para evitar que una mala conexión de red deje colgado el hilo principal. Ver aquí
- Al orientarse a dispositivos móviles: Tenga cuidado acerca de cómo implementa el uso de redes. Las propias radios inalámbricas son una gran pérdida de energía cuando están activadas. También tenga cuidado con los límites de datos que podrían ser impuestos en una red 1G/2G/3G/4G LTE. LibGDX tiene optimizaciones de configuración realizadas para permitir una baja latencia, pero todavía tienen los beneficios del TCP.
- Las configuraciones de red soportadas varían entre el backend y la aplicación java.
- El consumo de batería es más común cuando se envía y reciben datos debido a la potencia que necesitan las antenas de radios.
Vea también
Grandes artículos sobre la eficiencia de la batería en dispositivos móviles con el consumo de datos aquí
El código fuente de las clases Gdx.net aquí
Enlaces
- Indice
- Sección anterior: Manejo de archivos
- Siguiente sección: Preferences