Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.
| Ambdós costats versió prèvia Revisió prèvia Següent revisió | Revisió prèvia | ||
| websockets_php [2023/06/27 08:43] manuel_jose_moles_canal | websockets_php [2023/07/05 18:35] (actual) enric_mieza_sanchez no sortien els títols | ||
|---|---|---|---|
| Línia 2: | Línia 2: | ||
| =====Joc online. Apunts.===== | =====Joc online. Apunts.===== | ||
| + | |||
| ====Video-joc UF4 M7==== | ====Video-joc UF4 M7==== | ||
| Ho anirem fent per activitats (etapes) incrementals, | Ho anirem fent per activitats (etapes) incrementals, | ||
| Línia 29: | Línia 30: | ||
| L' | L' | ||
| </ | </ | ||
| - | |||
| - | \\ | ||
| <WRAP todo> | <WRAP todo> | ||
| Línia 36: | Línia 35: | ||
| </ | </ | ||
| + | |||
| + | A continuació, | ||
| + | |||
| + | --> index.html | ||
| + | <file html websockets/ | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | var socket; | ||
| + | function init() { | ||
| + | socket = new WebSocket(" | ||
| + | |||
| + | socket.onopen = function (msg) { | ||
| + | alert(" | ||
| + | }; | ||
| + | socket.onmessage = function (msg) { | ||
| + | alert(" | ||
| + | }; | ||
| + | socket.onclose = function (msg) { | ||
| + | alert(" | ||
| + | }; | ||
| + | } | ||
| + | function send(msg_xat) { | ||
| + | if(msg_xat.length > 0) { | ||
| + | socket.send(msg_xat); | ||
| + | } | ||
| + | } | ||
| + | function quit() { socket.close() } | ||
| + | function reconnect () { quit(); init(); } | ||
| + | </ | ||
| + | <input type=" | ||
| + | <input type=" | ||
| + | <hr> | ||
| + | <input type=" | ||
| + | <input type=" | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | |||
| + | <-- | ||
| + | |||
| + | --> SalaXatServer | ||
| + | <file php websockets/ | ||
| + | <?php | ||
| + | require_once(' | ||
| + | |||
| + | class SalaChatServer extends WebSocketServer { | ||
| + | protected function process($user, | ||
| + | echo 'user sent: ' . $message . PHP_EOL; | ||
| + | foreach ($this-> | ||
| + | if ($currentUser !== $user) | ||
| + | $this-> | ||
| + | } | ||
| + | } | ||
| + | protected function connected($user) | ||
| + | { | ||
| + | echo 'user connected' | ||
| + | } | ||
| + | protected function closed($user) | ||
| + | { | ||
| + | echo 'user disconnected' | ||
| + | } | ||
| + | } | ||
| + | |||
| + | $chatServer = new SalaChatServer(" | ||
| + | |||
| + | try { | ||
| + | $chatServer-> | ||
| + | } catch (Exception $e) { | ||
| + | $chatServer-> | ||
| + | } | ||
| + | </ | ||
| + | <-- | ||
| + | |||
| + | <WRAP todo> | ||
| A partir dels fitxers d' | A partir dels fitxers d' | ||
| Demani el nom. No ha de permetre la connexió si el nom no està introduït. Si la connexió està establerta, que no permeti modificar el nom. | Demani el nom. No ha de permetre la connexió si el nom no està introduït. Si la connexió està establerta, que no permeti modificar el nom. | ||
| Línia 42: | Línia 118: | ||
| Que mostri en pantalla tant els missatges enviats com els rebuts (en un div addicional), | Que mostri en pantalla tant els missatges enviats com els rebuts (en un div addicional), | ||
| + | </ | ||
| + | |||
| + | ======Act-2. Laberint: Iniciant la partida====== | ||
| + | =====Primera fase===== | ||
| + | En aquesta primera fase, farem que el client entri al servidor i es pugui connectar a una partida o crear-ne una de nova. | ||
| + | - Et connectes al servidor. El servidor et respon amb un json de la forma {connexio: | ||
| + | - Li pases el teu nom d’usuari. {nom: | ||
| + | - El servidor t’informa de les partides en curs. {partides: | ||
| + | - Pots optar per crear una nova partida o connectar-te a una existent {accio: | ||
| + | - Si hem fet ‘nova partida’, el servidor ens retorna el llistat de partides, amb la nostra incorporada. | ||
| + | |||
| + | <WRAP todo> | ||
| + | Prenent com a referència el codi treballat en l' | ||
| + | </ | ||