IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

API standards et tierces Android Discussion :

Affichage dans un TextView (socket.io)


Sujet :

API standards et tierces Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    étudiant
    Inscrit en
    Janvier 2017
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : étudiant

    Informations forums :
    Inscription : Janvier 2017
    Messages : 30
    Par défaut Affichage dans un TextView (socket.io)
    Bonjour les développeurs !
    J'ouvre un topic car j'ai un problème que je n'arrive pas a résoudre,
    J'ai créer une socket via nodejs qui elle émet un emit qui a pour message "connection ok!" , Ensuite via Android studio je me connecte a ma socket elle émet bien le message "connection ok!" depuis la console mais ce message ne veut pas s'afficher depuis mon TextView.

    Dois créer une autre fonction qui a pour but de gérer le TextView? ou alors autre chose? je vous met mon code ci joint:

    Mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    public class MainActivity extends AppCompatActivity {
      TextView MessageSocket;
      @Override
         protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
     
        MessageSocket= (TextView) findViewById(R.id.MessageSocket);
        runIO();
    }
     
     
    public void runIO(){
        try {
            SocketIO socket = new SocketIO("http://10.10.103.36:8080");
            socket.connect(new IOCallback() {
                @Override
                public void onMessage(JSONObject json, IOAcknowledge ack) {
                    try {
                        System.out.println("Server said:" + json.toString(2));
                        MessageSocket.setText(json.toString());
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }
     
                @Override
                public void onMessage(String data, IOAcknowledge ack) {
                    System.out.println("Server said: " + data);
     
                }
     
                @Override
                public void onError(SocketIOException socketIOException) {
                    System.out.println("an Error occured");
                    socketIOException.printStackTrace();
                }
     
                @Override
                public void onDisconnect() {
                   System.out.println("Connection terminated.");
                }
     
                @Override
                public void onConnect() {
                    System.out.println("Connection established");
                }
     
                @Override
                public void on(String event, IOAcknowledge ack, Object... args) {
                    System.out.println("Server triggered event '" + event + "'");
                }
            });
     
            // This line is cached until the connection is establisched.
            socket.send("Hello Server!");
        } catch (MalformedURLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

    Mon fichier java script

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    var http = require('http');
     
    var fs = require('fs');
     
     
     
     
     var server = http.createServer(function(req, res) {
     
     fs.readFile('./index.html', 'utf-8', function(error, content) {
     
        res.writeHead(200, {"Content-Type": "text/html"});
     
        res.end(content);
     
      });
     
      });
     
     
     
      var io = require('socket.io').listen(server);
     
     
     
    io.sockets.on('connection', function (socket) {
     
      console.log('Connection ok!');
       io.sockets.on('connection', function (socket) {
        socket.emit('message', 'Vous êtes bien connecté !');
      });
     
      });
    Merci de vos réponses !

  2. #2
    Membre extrêmement actif
    Profil pro
    Développeur
    Inscrit en
    Mars 2012
    Messages
    1 970
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 1 970
    Par défaut
    Salut,

    As-tu défini MessageSocket dans R.layout.activity_main ?

    avec layout_width: match_parent
    layout_height: wrap_content

    Rem: tu peux définir l'accès à RunIO en private ou protected.

  3. #3
    Membre averti
    Homme Profil pro
    étudiant
    Inscrit en
    Janvier 2017
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : étudiant

    Informations forums :
    Inscription : Janvier 2017
    Messages : 30
    Par défaut
    Re,

    Merci de ta réponse et oui normalement il est définis puis que je fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       MessageSocket= (TextView) findViewById(R.id.MessageSocket);
    Dans le bundle et j'ai bien vérifier l'id du textView et c'est bien MessageSocket ! qui lui est dans le relative layout

  4. #4
    Membre extrêmement actif
    Profil pro
    Développeur
    Inscrit en
    Mars 2012
    Messages
    1 970
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 1 970
    Par défaut
    Il te manque l'inflater.

    Ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    final LayoutInflater inflater = getLayoutInflater();
    final LinearLayout llFont = (LinearLayout) (inflater.inflate(R.layout.activity_font_preferences, (LinearLayout) findViewById(R.id.llFont)));
     
    (remplace llfont par ta relativeLayout ainsi que dans les CAST, fais un setText de message et setcontenview à la fin de llfont)

    Ex2:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    View v = inflater.inflate(R.layout.fragment_search, container, false);
    
    llBookTitle = (LinearLayout) v.findViewById(R.id.llBookTitle);
    btnBookTitle = (Button) v.findViewById(R.id.tvBookTitle);
    
    Button btnBack = (Button) v.findViewById(R.id.btnBack);

  5. #5
    Membre averti
    Homme Profil pro
    étudiant
    Inscrit en
    Janvier 2017
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : étudiant

    Informations forums :
    Inscription : Janvier 2017
    Messages : 30
    Par défaut
    Re,
    houla, je pense pas que se sois sa et dans mon code cette proposition ne marche pas mais cependant en faisant plusieurs test j'ai réussit a rapatrié mon flux json depuis ma Socket ici grace la la vairable "event" qui est le premier paramatre de socket.emit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    @Override
                    public void on(String event, IOAcknowledge ack, Object... args) {
                        System.out.println("Server triggered event '" + event + "'");
                        try {
                            JSONObject jsonObj = new JSONObject(event);
                            String mpx =jsonObj.getString("mpx");
                            MessageSocket.setText(mpx);
                        } catch (JSONException e) {
                            e.printStackTrace();
                        }
    Mais le problème c'est que sa prend le premier paramètres de socket.emit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    io.sockets.on('connection', function (socket) {
     
      console.log('Connection ok!');
       io.sockets.on('connection', function (socket) {
        socket.emit({mpx:'1'}, '{message:'Vous êtes bien connecté !'});
      });
     
      });
    et justement j'aimerais qu'il m'affiche le second paramètres qui est {message:'Vous êtes bien connecté !'}et non pas {mpx:'1'}
    Donc dans toutes les méthode de la méthode runIO ou est le deuxième paramètres? et comment l'afficher?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
     
        public void  runIO(){
     
            try {
     
                SocketIO socket = new SocketIO("http://192.168.0.22:8080");
                socket.connect(new IOCallback() {
                    @Override
                    public void onMessage(JSONObject json, IOAcknowledge ack) {
                        try {
                            System.out.println("Server said:" + json.toString(2));
     
                        } catch (JSONException e) {
                            e.printStackTrace();
                        }
                    }
     
                    @Override
                    public void onMessage(String data, IOAcknowledge ack) {
                        System.out.println("Server said: " + data);
     
     
                        //MessageSocket.setText(data);
                    }
     
                    @Override
                    public void onError(SocketIOException socketIOException) {
                        System.out.println("an Error occured");
                        socketIOException.printStackTrace();
                    }
     
                    @Override
                    public void onDisconnect() {
                       System.out.println("Connection terminated.");
                    }
     
                    @Override
                    public void onConnect() {
                        System.out.println("Connection established");
                    }
     
                    @Override
                    public void on(String event, IOAcknowledge ack, Object... args) {
                        System.out.println("Server triggered event '" + event + "'");
                        try {
                            JSONObject jsonObj = new JSONObject(event);
                            String mpx =jsonObj.getString("mpx");
                            MessageSocket.setText(mpx);
                        } catch (JSONException e) {
                            e.printStackTrace();
                        }
     
     
     
                    }
                });
     
                // This line is cached until the connection is establisched.
                socket.send("Hello Server!");
            } catch (MalformedURLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

  6. #6
    Membre extrêmement actif
    Profil pro
    Développeur
    Inscrit en
    Mars 2012
    Messages
    1 970
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 1 970
    Par défaut
    Je suppose que le 1er paramètre commence à 0

Discussions similaires

  1. Problème d'affichage d'un textview qui se trouve dans un fragment
    Par FunckyWarrior dans le forum Composants graphiques
    Réponses: 10
    Dernier message: 28/02/2013, 15h35
  2. Affichage dans TextView avec SQLITE
    Par JCMANSION dans le forum Composants graphiques
    Réponses: 4
    Dernier message: 21/12/2010, 10h56
  3. Erreurs affichage d'un fichier dans un textview
    Par Selennad dans le forum GTK+ avec C & C++
    Réponses: 3
    Dernier message: 06/06/2008, 16h33
  4. Réponses: 1
    Dernier message: 05/02/2008, 12h21
  5. affichage dans le front buffers ne marche pas!
    Par jamal24 dans le forum OpenGL
    Réponses: 3
    Dernier message: 22/08/2003, 19h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo