2014-09-19 169 views
0

我尝试创建聊天服务器,它将连接到Android客户端。 1客户端在服务器上发送一些数据,服务器接收它并发送给其余客户端。所以我尝试使用'净',但没有奏效。在服务器上,我正在监听1490端口和192.168.3.XX地址。现在我的客户端可以连接到服务器,但发送数据不起作用。 代码:Node.js http聊天服务器

var net = require('http'); 
var sockets = []; 
var tcpServer = net.createServer(); 

tcpServer.on('connection', function(socket){ 
console.log(socket.remoteAddress+' connected'); 
socket.setEncoding('utf8'); 
sockets.push(socket); 
socket.on('data', function(data){ 
    console.log(data); 
    socket.emit('data', data); 
}); 
}); 
tcpServer.listen(1490, '192.168.3.XX'); 
+0

你为什么不使用socket.emit,如果你想让它发送给所有的客户端?这样您就可以立即向所有注册客户进行广播。 – Ravi 2014-09-19 10:53:00

+0

@Ravi我甚至没有登录控制台console.log(data);,所以这部分代码不能完全工作 – Drake 2014-09-19 11:04:49

+0

检查你正在连接的'socket'和'port',并且你应该发送数据'data'事件,例如'socket.emit('data','your data')'。 – Ravi 2014-09-19 11:12:40

回答

0

我认为你的问题是在Android客户端代码。
Check this, hope it helps

public void postData() { 
 
    // Create a new HttpClient and Post Header 
 
    HttpClient httpclient = new DefaultHttpClient(); 
 
    HttpPost httppost = new HttpPost("http://www.yoursite.com/script.php"); 
 

 
    try { 
 
     // Add your data 
 
     List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2); 
 
     nameValuePairs.add(new BasicNameValuePair("id", "12345")); 
 
     nameValuePairs.add(new BasicNameValuePair("stringdata", "AndDev is Cool!")); 
 
     httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 
 

 
     // Execute HTTP Post Request 
 
     HttpResponse response = httpclient.execute(httppost); 
 
     
 
    } catch (ClientProtocolException e) { 
 
     // TODO Auto-generated catch block 
 
    } catch (IOException e) { 
 
     // TODO Auto-generated catch block 
 
    } 
 
}

+0

它只是发送数据在服务器上,在Android上唯一的问题是它如何等待或数据,因为我使用WebSocketClient – Drake 2014-09-19 11:06:36