2013-05-22 5 views
0

AWS에 node.js 테스트 응용 프로그램을 배포했습니다. 다음은 server.js 파일입니다.Node.JS 및 AWS와의 TCP 소켓 연결

var http = require("http"); 


var net = require("net"); 

var server=net.createServer(function(socket){ 
    socket.on('connection',function(socket){ 
     console.log('socket connection...'); 
    }); 
    socket.on('data',function(message){ 
     console.log('socket message:'+message); 
     socket.write('You wrote:'+message);  
    }); 
    socket.on('error',function(error){ 
     console.log('error on socket message:'+error);  
    }); 
}).listen(1024); 
/* 
http.createServer(function(request, response) { 
    response.writeHead(200, {"Content-Type": "text/plain"}); 
    response.write(process.env.PORT); 
    console.log(process.env.PORT); 
    response.end(); 
}).listen(8081); 
*/ 

서버에 대한 HTTP 연결이 정상적으로 작동합니다. 로드 밸런서에 1024의 TCP 리스너가 추가되었습니다. 그러나 C# 클라이언트에서 서버로의 TCP 연결이 실패하여 시간 초과 오류가 발생했습니다. 내가 localhost에서 동일한 코드를 테스트하고 잘 작동합니다. 소켓 연결을 위해 AWS에 추가 설정이 필요합니까?

+1

send a FIN package 당신이 당신의 EC2 보안 그룹에 포트 1024을 열었습니다? –

+0

소켓 연결을 어디에서 끝내시겠습니까? –

답변

0
당신은 당신의 연결을 end() 필요

var server=net.createServer(function(socket){ 
    socket.on('connection',function(socket){ 
     console.log('socket connection...'); 
    }); 
    socket.on('data',function(message){ 
     console.log('socket message:'+message); 
     socket.write('You wrote:'+message); 
     socket.end(); // <-- :)  
    }); 
    socket.on('error',function(error){ 
     console.log('error on socket message:'+error);  
    }); 
}).listen(1024);