I am creating an android chat application. I am using nodejs on the server and trying to implement the android client for socketIO using this . First, the client says hello to the server, and the server drives it back to the client. It works great. Now there is a Button that, when you click the text echo in the EditText to the server. It is assumed that the server will repeat the text back to the client. However, as soon as the text is sent to the server, I get a Discarding transport error on the server and nothing is returned. The client cannot repeat anything. What is wrong with the codes?
Server
var http = require('http'),fs = require('fs'); var app = http.createServer(function (req, res) { res.end(); }).listen(8000, '127.0.0.1'); var io = require('socket.io').listen(app); io.sockets.on('connection', function(socket) { socket.on('echo', function(data) { socket.emit('echoback', data); }); });
Client
package com.jack.pri; import java.net.MalformedURLException; import org.json.JSONException; import org.json.JSONObject; import android.os.Bundle; import android.app.Activity; import android.util.Log; import android.view.KeyEvent; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.view.View.OnKeyListener; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import io.socket.*; public class MainActivity extends Activity { private SocketIO socket; private TextView tview; private Button btn; private EditText tt; private String k; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tview=(TextView) findViewById(R.id.tv); tt = (EditText) findViewById(R.id.et); btn = (Button) findViewById(R.id.button1);
Server Error Log
debug - client authorized info - handshake authorized kaHbMG-lFmuFtvkFGY2W debug - setting request GET /socket.io/1/websocket/kaHbMG-lFmuFtvkFGY2W debug - set heartbeat interval for client kaHbMG-lFmuFtvkFGY2W debug - client authorized for debug - websocket writing 1:: debug - websocket writing 5:::{"name":"echoback","args":["hello"]} debug - emitting heartbeat for client kaHbMG-lFmuFtvkFGY2W debug - websocket writing 2:: debug - set heartbeat timeout for client kaHbMG-lFmuFtvkFGY2W debug - got heartbeat packet debug - cleared heartbeat timeout for client kaHbMG-lFmuFtvkFGY2W debug - set heartbeat interval for client kaHbMG-lFmuFtvkFGY2W debug - websocket writing 5:::{"name":"echoback","args":["this is textbox input text"]} info - transport end (undefined) debug - set close timeout for client kaHbMG-lFmuFtvkFGY2W debug - cleared close timeout for client kaHbMG-lFmuFtvkFGY2W debug - cleared heartbeat interval for client kaHbMG-lFmuFtvkFGY2W debug - discarding transport
source share