Recibo el siguiente error:

events.js:48
        throw arguments[1]; //Unhandled 'error' event
        ^
Error: socket hang up
    at createHangUpError (http.js:1091:15)
    at Socket.onend (http.js:1154:27)
    at TCP.onread (net.js:363:26)

En el nodo v0.6.6, mi código tiene varias http.solicitud y .recibir llamadas.
Por favor, sugiera maneras de controlar lo que hace que el socket colgar, y en la que la solicitud/call es.
Gracias

  • Puede solucionar reiniciando el servidor, estamos utilizando pm2 cuando obtenemos el error anterior hacemos pm2 restart all.
InformationsquelleAutor user971956 | 2012-05-30

5 Comentarios

  1. 39

    Rápida y sucia de solución para el desarrollo:

    Uso longjohn, consigue largos seguimientos de pila que va a contener las operaciones asincrónicas.

    Limpia y correcta solución:
    Técnicamente, en el nodo, siempre que emiten un 'error' evento y nadie lo escucha, va a tirar. Para que no tire, poner a un oyente en él y manejarlo usted mismo. De esa manera usted puede registrar el error con más información.

    tener un detector para un grupo de llamadas puede utilizar dominios y también coger otros errores en tiempo de ejecución. Asegúrese de que cada async operación relacionada con http(Servidor/Cliente) en diferentes dominio contexto comparación con las otras partes del código, el dominio automáticamente escuchar la error de eventos y se propagan a su propio controlador. Tan solo escuchar ese controlador y obtener los datos de error. También puedes obtener más información de forma gratuita.(Dominios son depreceated).

    Como Mike sugirió también puede establecer NODE_DEBUG=net o uso strace. Ambos proporcionan lo que es el nodo haciendo internamente.

  2. 14

    Además, puede establecer el NODE_DEBUG variable de entorno net para obtener información acerca de lo que todos los enchufes están haciendo. De esta manera usted puede aislar al recurso remoto es restablecer la conexión.

  3. 10

    Además ftft1885 la respuesta de

    http.get(url, function(res)
    {
        var bodyChunks = [];
    
        res.on('data', function(chunk)
        {
            //Store data chunks in an array
            bodyChunks.push(chunk);
        }).on('error', function(e)
        {
            //Call callback function with the error object which comes from the response
            callback(e, null);
        }).on('end', function()
        {
            //Call callback function with the concatenated chunks parsed as a JSON object (for example)
            callback(null, JSON.parse(Buffer.concat(bodyChunks)));
        });
    }).on('error', function(e) {
        //Call callback function with the error object which comes from the request
        callback(e, null);
    });

    Cuando tuve esta zócalo «colgar» error, fue porque yo no era de la captura de las solicitudes de errores.

    • Lo que debería ser en la función de devolución de llamada? Puedo definir que en el servidor o es que siempre en la respuesta?
    • Usted debe definir en el servidor
    • Bueno me faltaba la segunda, en error de
  4. 4

    uso

    req.on('error',function(err){})
    • Sírvanse explicar su respuesta. ¿Cómo funciona el OP usarlo? Cómo ayuda a resolver su problema?
    • la respuesta es un poco corto, pero para el punto: como Eschard1991 señala, que usted necesita para manejar los eventos de error no sólo de la respuesta, sino también del objeto de petición.
    • Al menos debe console.log(err) sus errores..
  5. 0

    Más probable es que su servidor de conexión de socket de alguna manera estaba cerrado antes de todos los http.ServerResponse objetos han terminado. Asegúrese de que usted ha dejado de todas las solicitudes recibidas antes de hacer algo con las conexiones entrantes (incomming conexión es algo diferente de la petición HTTP entrante).

Dejar respuesta

Please enter your comment!
Please enter your name here