Nodejs socket.io服务器连接到Android,但不发送消息

我试图在NodeJS服务器和Android之间交换消息。 Android可以连接和发送消息到服务器,但是服务器发送的消息不会在Android上被接收到。

var app = require('http').createServer(handler) , io = require('socket.io').listen(app) , fs = require('fs') app.listen(80); var text = 'BRUNO'; var text2 = 'BRUNO2'; function handler (req, res) { fs.readFile(__dirname + '/index.html', function (err, data) { if (err) { res.writeHead(500); return res.end('Error loading index.html'); } res.writeHead(200); res.end(data); }); } var clients = []; io.sockets.on('connection', function (socket) { socket.emit('news', text); socket.emit('news', text2); socket.send('BRUNO'); socket.on('my other event', function (data) { console.log(data); console.log(Math.floor((Math.random()*10000)+1)); }); socket.on('name', function (data) { socket.set('name',data); console.log('BRUNOOOO'); if (clients.length ==0 ) clients.push(socket); else { socket2 = clients.pop() socket2.join('room'); socket.join('room'); io.sockets.in('room').emit('news','NOVA SALA'); } socket.get('name', function (err, data) { socket.emit('news',data); }); }); }); 

ANDROID

 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); TextView txtTest; txtTest = (TextView) findViewById(R.id.txtTeste); try { ToServer tos = new ToServer(txtTest); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } public class ToServer implements IOCallback { private SocketIO socket; private TextView txtTest; public ToServer(TextView a) throws Exception { socket = new SocketIO(); this.txtTest = a; socket.connect("http://nodebruno.jit.su", this); socket.emit("my other event", "SERVER RECEBEU ANDROID"); } @Override public void onMessage(JSONObject json, IOAcknowledge ack) { try { txtTest.setText(json.toString(2)); } catch (JSONException e) { e.printStackTrace(); } } @Override public void onMessage(String data, IOAcknowledge ack) { txtTest.setText(data); Log.d("Event",event ); } @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) { txtTest.setText(event); Log.d("Event",event ); } } 

在Android上我使用这个https://github.com/Gottox/socket.io-java-client

我试过你的代码,它在我的情况下工作。 在覆盖function下,我能够获得从服务器发送的事件和消息。

尝试使用这个: https : //github.com/koush/AndroidAsync这里是演示实现: https : //github.com/Thanhktm/socketio_android