与Node.JS和AWS的TCP套接字连接

时间:2013-05-22 12:48:05

标签: node.js amazon-web-services amazon-ec2

我在AWS上部署了一个node.js测试应用程序。以下是server.js文件:

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 个答案:

答案 0 :(得分:0)

您需要end()您的关联和send a FIN package

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);