Socket.io: Nodejs socket.io error no controlado de websocket no controlado

Creado en 31 oct. 2018  ·  3Comentarios  ·  Fuente: socketio/socket.io

Estoy usando la biblioteca socket.io-stream para transferir archivos entre servidores de 2 nodos.

Servidor A: (Enviar archivo)

```
var clientIO = require('socket.io-client');
var ss = require('socket.io-stream');

var clientSocket= clientIO( http://ServerB_Address );
clientSocket.on('error', (error) => {
consola.log(error);
});

var stream = ss.createStream({objectMode: true});
ss(clientSocket).emit('enviar-archivo', flujo, datos);
var bytes cargados = 0;
var desde = 0;
var lector = fs.createReadStream(filePath, {inicio: desde});
lector.tubería(flujo)
.on('error', (error) => {
consola.log(error);
})
.on('datos', (fragmento) => {
uploadedBytes += Buffer.byteLength(trozo);
});

Server B: (Receive File)

 ```
var fs = require('fs');
    var io = require('socket.io')(http);
    var ss = require('socket.io-stream');

    io.on('connection', (socket) => {
        // listen to send file
        ss(socket).on('send-mail', (stream, data) => {
            console.log(`*** Begin receive file`);

            var writer = fs.createWriteStream(downloadPath, {flags: 'a'});
            stream.pipe(writer);

            var size = 0;
            stream.on('data', (chunk) => {
                size += chunk.length;
                console.log(`*** Receive ${size} from mail`);
            });

            stream.on('end', () => {
                console.log(`*** End file`);
            });

            stream.on('error', (error) => {
                console.log(`*** Error when receiving file`);
                console.log(error);
            });
        });
    });

Funciona bien, pero cuando se transfiere el archivo si el servidor del segundo nodo se detiene, la aplicación en el otro servidor falla y se genera un evento de error no controlado.

stream-error

Por favor, ¿alguien puede decirme cómo puedo detectar este error? ¿Y si hay una mejor manera de transferir archivos entre servidores de nodos?

Comentario más útil

No use socket.io..., ahorrará tiempo a largo plazo, solo mire los más de 300 problemas abiertos sin respuestas...
La última confirmación significativa fue hace 6 meses...

Todos 3 comentarios

Use un detector de eventos para el evento "error". O use una biblioteca de emisores de eventos puros

¿Cómo usar el detector de eventos para el error? Por favor, dame un ejemplo, porque registro un error para el socket del cliente.

No use socket.io..., ahorrará tiempo a largo plazo, solo mire los más de 300 problemas abiertos sin respuestas...
La última confirmación significativa fue hace 6 meses...

¿Fue útil esta página
0 / 5 - 0 calificaciones