Foros del Web » Programando para Internet » Node.js »

Conexiones TCP persistentes en NodeJS

Estas en el tema de Conexiones TCP persistentes en NodeJS en el foro de Node.js en Foros del Web. Haciendo ciertos tests en NodeJS se me ocurrió crear un miniservidor HTTP que responda peticiones HTTP GET sin necesidad de usar los métodos de creación ...
  #1 (permalink)  
Antiguo 19/08/2012, 03:01
Avatar de dontexplain  
Fecha de Ingreso: junio-2012
Mensajes: 536
Antigüedad: 12 años, 5 meses
Puntos: 127
Busqueda Conexiones TCP persistentes en NodeJS

Haciendo ciertos tests en NodeJS se me ocurrió crear un miniservidor HTTP que responda peticiones HTTP GET sin necesidad de usar los métodos de creación de servidor Web.

Funciona correctamente hasta lo planteado. No obstante, estoy teniendo problemas para mantener la conexión TCP activa tras una petición WEB aislada, tras la cual, cualquier otra petición WEB el navegador la realiza estableciendo otra conexión TCP.

Al ser un servidor TCP y no un servidor WEB al uso (con ḿétodos ajustados a los requerimientos estándar), la escritura de cabeceras y body se realiza del mismo modo (cabecera retorno de carro/salto linea, cabecera final dos retornos de carro/salto linea), y se señaliza el final con el método end (¿?).

Código PHP:
socket.write("Cabecera: Valor\r\nCabecera2:Valor2\r\n\r\n");
socket.write("<html><head></head><body></body></html>");
socket.end(); 
Se me ocurre enviar la cabecera HTTP 1.0 Connection: Keep-Alive, pero en tal caso tampoco funciona.

Código PHP:
net.createServer(function(socket){

socket.setEncoding("ascii");
socket.addListener("data",function(dt,err){
// código estándar donde dt contiene los datos de la petición
});

}); 
Código Javascript:
Ver original
  1. wh = function(code){
  2. if (code == 200 || code == 404) {
  3.         hd = "HTTP/1.0 "+code+"\r\n";
  4.     }
  5.  
  6.     hd +=  "Date: "+new Date()+"\r\n";
  7.     hd += "Server: "+nameserver+"\r\n";
  8.     hd += "Connection: Keep-Alive\r\n";
  9.     hd += "Content-Type: text/html; charset="+charset+"\r\n\r\n";
  10.  
  11.     return hd;
  12. }
Seguro que la estoy cagando en algún punto.

Muchas gracias por su ayuda y disculpen esta duda tan tonta.

P.D: Disculpen si no es la categoría adecuada para esta consulta.
__________________
21añero.
HTML/CSS, PHP, JS/jQuery, Mysql; NodeJS/Socket.io (& V8); C++ ; Python (wxpy); Ensamblador.
Músico (clarinetista/pianista) y compositor

Última edición por dontexplain; 19/08/2012 a las 06:30

Etiquetas: conexiones, funcion, html, js, tcp
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:27.