2014-09-19 4 views
0

나는 안드로이드 클라이언트에게 연결될 채팅 서버를 만들려고합니다. 1 클라이언트가 서버에 일부 데이터를 보내고 서버가 그것을 수신하여 나머지 클라이언트에게 보냅니다. 그래서 'net'을 사용해 보았지만 작동하지 않았습니다. 서버에서 나는 1490 포트와 192.168.3.XX 주소를 듣고있다. 이제 내 클라이언트가 서버에 연결할 수 있지만 데이터 전송이 작동하지 않습니다. 코드 :Node.js http chat server

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

+0

@Ravi 콘솔 console.log (데이터)에 로그인하지 않아도되기 때문에 코드 일부가 완전히 작동하지 않습니다 – Drake

+0

연결하려는 '소켓'및 '포트'를 확인하십시오. 'socket.emit ('data', 'your data')와 같은 'data'이벤트. – Ravi

답변

0

문제는 안드로이드 클라이언트 코드에 있다고 생각합니다. 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

그냥 WebSocketClient를 사용하기 때문에 안드로이드에서 유일한 문제는 어떻게 대기 또는 데이터 서버에 데이터를 보내 – Drake