bytes.cat

La wiki d'FP d'informàtica

Eines de l'usuari

Eines del lloc


libgdx_comunicacions

Diferències

Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.

Enllaç a la visualització de la comparació

Ambdós costats versió prèvia Revisió prèvia
Següent revisió
Revisió prèvia
libgdx_comunicacions [2024/04/12 11:44]
enric_mieza_sanchez [Servidor WebSockets en NodeJS]
libgdx_comunicacions [2024/05/03 17:47] (actual)
enric_mieza_sanchez [Ús en app libGDX]
Línia 2: Línia 2:
  
 Aquest article ve de [[jocs libGDX]] on implementem jocs multiplataforma. Aquest article ve de [[jocs libGDX]] on implementem jocs multiplataforma.
 +
 +libGDX es programa en Java, per tant podriem emprar les llibreries estàndard de comunicació HTTP o WebSockets. Però si utilitzem les pròpies de liBGDX ens facilitarà el codi, ja que ens estalviarem la gestió dels //threads// de comunicació necessaris a [[Android]] explicats a [[Android Threads]].
  
 Llibreries de comunicacions: Llibreries de comunicacions:
Línia 14: Línia 16:
  
 Les realitzem mitjançant la [[https://libgdx.com/wiki/networking|llibreria Networking de libGDX]] que ja ve integrada al propi //framework//. Les realitzem mitjançant la [[https://libgdx.com/wiki/networking|llibreria Networking de libGDX]] que ja ve integrada al propi //framework//.
 +
 +==== Exercicis ====
 +
 +<WRAP todo>
 +Fes un [[https://stackoverflow.com/questions/33062574/how-to-properly-implement-a-dialog-box-using-libgdx|projecte libGDX amb Dialog com el de l'exemple]].
 +
 +Implementa una crida HTTP a alguna web quan premem un botó del Dialog.
 +
 +</WRAP>
 +
 +
  
 \\ \\
Línia 95: Línia 108:
   * Podem enviar des de qualsevol part del codi inclús des del ''render'' tot i que convé no abusar.   * Podem enviar des de qualsevol part del codi inclús des del ''render'' tot i que convé no abusar.
   * Per rebre dades del servidor ho fem mitjançant l'objecte ''WebSocketListener''.   * Per rebre dades del servidor ho fem mitjançant l'objecte ''WebSocketListener''.
 +
 +<WRAP important>
 +El protocol WebSockets <nowiki>(ws://)</nowiki> funciona sobre HTTP. Si estem treballant en producció sobre HTTPS, el protocol és SecureWebSockets <nowiki>(wss://)</nowiki>. El codi aquí indicat serà una mica diferent, caldrà instanciar ''WebSockets.toSecureWebSocketUrl'' enlloc de ''WebSockets.toWebSocketUrl''.
 +
 +La variable ''address'' ha de ser el nom del servidor (no val la IP !), sense prefix, port 443 i emprant la crida que s'explica a continuació.
 +
 +<code java>
 +socket = WebSockets.newSocket(WebSockets.toSecureWebSocketUrl(address, port));
 +</code>
 +
 +</WRAP>
  
 <file java GameScreen.java> <file java GameScreen.java>
Línia 111: Línia 135:
             address = "10.0.2.2";             address = "10.0.2.2";
         socket = WebSockets.newSocket(WebSockets.toWebSocketUrl(address, port));         socket = WebSockets.newSocket(WebSockets.toWebSocketUrl(address, port));
 +        // ULL: si és a traves de HTTPS , el protocol seria wss enlloc de ws
 +        //socket = WebSockets.newSocket(WebSockets.toSecureWebSocketUrl(address, port));
         socket.setSendGracefully(false);         socket.setSendGracefully(false);
         socket.addListener((WebSocketListener) new MyWSListener());         socket.addListener((WebSocketListener) new MyWSListener());
Línia 174: Línia 200:
   $ cd ws1   $ cd ws1
   $ npm init   $ npm init
-  $ npm install http ws+  $ npm install http ws express uuid
  
 Afegeix ''index.js'' i posa'l en marxa: Afegeix ''index.js'' i posa'l en marxa:
Línia 251: Línia 277:
   ws.on('message', function message(data) {   ws.on('message', function message(data) {
     try {     try {
 +      // exemple per descoficar JSON
       var posData = JSON.parse(data);       var posData = JSON.parse(data);
       posData.id = userid;       posData.id = userid;
libgdx_comunicacions.1712922298.txt.gz · Darrera modificació: 2024/04/12 11:44 per enric_mieza_sanchez