2014-09-19 233 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