如何从android与socket.io模块发送数据到nodejs服务器?

我写了这个node.js server.But当我从android发送数据与socket.io模块。但我得到errors.Please帮我吗? 我怎样才能把数据(发送者,消息)从android发送到node.js服务器。

node.js服务器

var io = require('socket.io').listen(8001); var connectCounter=0; console.log('Server running :'); // open the socket connection io.sockets.on('connection', function (socket) { connectCounter++; console.log('bağlantı başarılı sayı:'); console.log(connectCounter); //Recode user online var sender; socket.on('user-online',function(data){ console.log('user-online'); var obj = JSON.parse(data); sender = obj.sender; console.log(sender); socket.broadcast.emit('online',{sender : sender}); }); socket.on('message', function(message){ console.log('on-message'); var obj = JSON.parse(message); socket.broadcast.emit('event',{sender : obj.sender, message : obj.message}); console.log(message); }); socket.on('disconnect', function (socket){ console.log('disconnect'); connectCounter--; socket.broadcast.emit('offline',{sender : sender}) }); }); 

这是一个android代码。

 btnOK.setOnClickListener(new View.OnClickListener() { public void onClick(View arg0) { strUserName = edtUserName.getText().toString(); if (strUserName != null && strUserName.length() > 0 || !"".equals(strUserName)) { Intent intent = new Intent(getApplicationContext(), ScreenChat.class); intent.putExtra("UserName", strUserName); startActivity(intent); edtUserName.getText().clear(); }else { Toast.makeText(getApplicationContext(), "user name null", Toast.LENGTH_SHORT).show(); return; } SocketIO socket; try { socket = new SocketIO("http://192.168.9.43:8001/"); socket.connect(new IOCallback() { public void onMessage(JSONObject json, IOAcknowledge ack) { try { System.out.println("Server said:" + json.toString(2)); } catch (JSONException e) { e.printStackTrace(); } } public void onMessage(String data, IOAcknowledge ack) { System.out.println("Server said: " + data); } public void onError(SocketIOException socketIOException) { System.out.println("an Error occured"); socketIOException.printStackTrace(); } public void onDisconnect() { System.out.println("Connection terminated."); } public void onConnect() { System.out.println("Connection established"); } 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 e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } @SuppressWarnings("unused") public void onClick(final DialogInterface arg0, final int arg1) { // TODO Auto-generated method stub } }); 

当我点击btnOK(你可以看到上面的代码),我得到这个错误: 错误屏幕上的Windows 7控制台提示符

您正在发送一个string,并试图将其parsing为JSON。

 socket.send("Hello Server!"); var obj = JSON.parse(message); 

"Hello Server!" 无效的JSON。