1

我在 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 上的套接字连接是否需要更多配置?

4

1 回答 1

0

您需要end()连接并发送 FIN 包

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);
于 2013-05-22T14:06:57.683 回答