title: Node.js and Websocket in Android Eclipse
body: <p>Thanks for looking into my question. </p>
  
  <p>I am a beginner in android development and currently i am trying to make chat app which uses socket and node js. </p>
  
  <p>I used a library from github i.e <a href="https://github.com/Gottox/socket.io-java-client" rel="nofollow noreferrer">https://github.com/Gottox/socket.io-java-client</a> and was able to send message to my server and i was able to receive back message as well under "new_client_message" which is shown in the logcat image below.</p>
  
  <p>The problem i am facing is that i cannot figure out the way to get the messages from the server to display it in a list view. It would be great if anyone could help me out. Thanks in advance</p>
  
  <p>My LogCat:
  <img src="https://i.stack.imgur.com/YQPvr.png" alt="Logcat"></p>
  
  <p>Node.js Code:</p>
  
  <pre><code>var socket = require('socket.io');
  var express = require('express');
  var http = require('http');
  
  var app = express();
  var server = http.createServer(app);
  
  var io = socket.listen(server);
  
  var users = {};
  var clients = {};
  
  io.sockets.on( 'connection', function(socket) {
  console.log("New client !");
  var socket_id = socket.id;
  var hs = socket.handshake;
  //store user with socket id
  if(hs.query.user_id !== undefined){
      users[hs.query.user_id] = socket.id; // connected user with its     socket.id
  
  }
  
  clients[socket.id] = socket; // add the client data to the hash
  
  socket.on('disconnect', function () {
      delete clients[socket.id]; // remove the client from the array
      delete users[hs.query.username]; // remove connected user &amp; socket.id
  });
  
  socket
      .on('new_message', function(data){
          clients[users['admin']].emit('new_message', {'original_data':data,'socket_id': socket_id } );
      })
      .on('new_client_message', function(data){
          console.log(data);
          clients[data.socket_id].emit('new_client_message', data.message);
      })
  ;
  
  });
  
  server.listen(3030);
  </code></pre>
  
  <p>And here is my code:</p>
  
  <pre><code>socket = null;
      try {
          socket = new SocketIO("http://xxx.xxx.xx.xx:3030/");
      } catch (MalformedURLException e1) {
          // TODO Auto-generated catch block
          e1.printStackTrace();
      }
      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);
  
          }
  
          @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");
          }
  
        //here I was trying to get the message from the server, convert into string and 
        //display in list view(thats when the error displayed)
  
          @Override
          public void on(String event, IOAcknowledge ack, Object... args) {
              System.out.println("Server triggered event '" + event + "'");
              System.out.println("senrver ack" + ack);
              System.out.println("server said this " + args[0]);
  
              rohan = args[0].toString();
  
  
              mListData.add(rohan);
              //mListData.add(args[0].toString());
  
          }
  
  
      });
  
      //mListData.add(rohan);
  
    //sending the message from the app when onclick to the server which is sucessful
  
      send.setOnClickListener(new OnClickListener(){
  
          @Override
          public void onClick(View arg0) {
              // TODO Auto-generated method stub
  
  
              // This line is cached until the connection is establisched.
              //socket.send("new_message");
  
  
  
              chat = messag.getText().toString();
  
              karan = client_email+";"+chat;
  
           // This line is cached until the connection is establisched.
              socket.emit("new_message", karan);
              click();
  
  
  
  
          }
  
          private void click() {
              // TODO Auto-generated method stub
              //getting the username
              name = getIntent().getExtras().getString("name");
              String output = name.substring(0,1).toUpperCase() + name.substring(1);
  
  
              // converting the TextView message to string
              msg = messag.getText().toString();
  
              // combining the username and the text view
              messag.setText(output +" " + ":" + " " + msg);
  
              //showing the final combination in the listview
              mListData.addAll(messag.getText().toString());
  
              messag.setText("");
  
              //when the list view is updated with data, then it goes to that position
              lvList.setSelection(mListData.getCount() -1);
              post();
  
          }
  </code></pre>
  
  <p>Please guide me where should i add further code to diplay the message from the node.js server in the listview. I am sure that i am making some mistake and i would appreciate if someone could correct me.
  Much thanks !</p>