Partage
  • Partager sur Facebook
  • Partager sur Twitter

Lecture de socket sur android studio

    18 novembre 2017 à 14:55:01

    Bonjour,

    Je tente de faire un mini jeu en multijoueur sur android studio avec la bibliothèque libgdx à l'aide de socket.io

    Pour le serveur, il est en node.js, voici le code:

    var app = require('express')();
    var server = require('http').Server(app);
    var io = require('socket.io')(server);
    var players = [];
    var mysql = require('mysql');
    
    server.listen(8080, function(){
    	
    	console.log("[Serveur] Démarrage réussi !");
    		try{
    		var mySqlClient = mysql.createConnection({
      		host     : "localhost",
      		user     : "root",
      		password : "",
      		database : "test"
    		});
    		console.log("[SQL] Connexion effectuée");
    
    		var sqlQuery = mySqlClient.query("SELECT * FROM users");
    	} catch(e) {
    		console.log("[SQL] "+e);
    	}
    
    	
    
    });
    
    io.on('connection', function(socket){
    
    var now = new Date();
    var heure   = now.getHours();
    var minute  = now.getMinutes();
    var seconde = now.getSeconds();
    	console.log("["+heure+ ":"+minute+":"+seconde+"][Serveur] Un joueur vient de se connecter à l'écran de connexion.");
    
    		socket.emit('confirmConnexion', "");
    
    
    	socket.on('disconnect', function(){
    		var now = new Date();
    var heure   = now.getHours();
    var minute  = now.getMinutes();
    var seconde = now.getSeconds();
    		console.log("["+heure+ ":"+minute+":"+seconde+"][Serveur] Un joueur vient de se déconnecter de l'écran de connexion.");
    	});
    });


    Jusque là tout va bien.

    Quand un joueur se connecte, j'aimerais que le serveur lui envoie une socket 'confirmConnexion' avec

    socket.emit('confirmConnexion', ""); //Ligne 36

    Comme pour dire "C'est bon, je suis connecté, tu peux continuer".

    Le problème étant de lire les socket sur android studio, j'ai lue de nombreux tuto, mais je reste toujours dans l'incompréhension, je ne comprend comme fonctionne leurs script (Il ne sont d'ailleurs jamais décris).

    Mon script d'ouverture de l'app donne:

    package com.exemple;
    
    import com.badlogic.gdx.ApplicationAdapter;
    import com.badlogic.gdx.Gdx;
    import com.badlogic.gdx.graphics.GL20;
    import com.badlogic.gdx.graphics.g2d.SpriteBatch;
    import com.gorlena.managers.GameStateManager;
    import com.gorlena.states.MainMenu;
    import com.gorlena.states.SplashScreen;
    
    import io.socket.client.IO;
    import io.socket.client.Socket;
    import io.socket.emitter.Emitter;
    
    public class LaunchGame extends ApplicationAdapter {
    	private GameStateManager gsm;
    	private SpriteBatch sb;
    	public static boolean musicok = false;
    	private Socket socket;
    
    	@Override
    	public void create () {
    		this.gsm = new GameStateManager();
    		this.sb = new SpriteBatch();
    		connectSocket();
    
            
    
    
    		this.gsm.push(new SplashScreen(this.gsm));
    	}
    
    	@Override
    	public void render () {
    		Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
    		this.gsm.update(Gdx.graphics.getDeltaTime());
    		this.gsm.render(this.sb);
    
    
    
    	}
    
    	public void connectSocket() {
    		try {
    			socket = IO.socket("http://localhost:8080");
    			socket.connect();
    
    		} catch(Exception e) {
    			System.out.println("Erreur: "+e);
    		}
    	}
    
    	@Override
    	public void dispose () {
    		this.sb.dispose();
    	}
    }


    Je ne sais pas où et comment attendre la lecture d'une socket côté client sur android studio.

    Je précise que je débute avec les sockets et dans java en général, si vous remarquez des imperfection n'hésitez pas :)

    Merci

    -
    Edité par Antoine Dfr 18 novembre 2017 à 14:55:20

    • Partager sur Facebook
    • Partager sur Twitter

    Lecture de socket sur android studio

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown