Socket.io: Nodejs socket.io erro não tratado websocket não tratado

Criado em 31 out. 2018  ·  3Comentários  ·  Fonte: socketio/socket.io

Estou usando a biblioteca socket.io-stream para transferir arquivos entre servidores de 2 nós.

Servidor A: (Enviar Arquivo)

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

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

var stream = ss.createStream({objectMode: true});
ss(clientSocket).emit('send-file', stream, data);
var carregadoBytes = 0;
var de = 0;
var leitor = fs.createReadStream(filePath, {start: from});
leitor.pipe(stream)
.on('erro', (erro) => {
console.log(erro);
})
.on('dados', (pedaço) => {
uploadedBytes += Buffer.byteLength(chunk);
});

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 bem, mas ao transferir o arquivo se o segundo servidor do nó for interrompido, o aplicativo no outro servidor travou e um evento de erro não tratado foi gerado

stream-error

Por favor, alguém pode me dizer como posso pegar esse erro? E se houver uma maneira melhor de transferir arquivos entre servidores de nós?

Comentários muito úteis

Não use socket.io ..., você economizará tempo a longo prazo, basta olhar para os mais de 300 problemas abertos sem respostas ...
O último commit significativo foi há 6 meses...

Todos 3 comentários

Use um ouvinte de eventos para o evento "erro". Ou use uma biblioteca de emissor de evento puro

Como usar o ouvinte de eventos para o erro? Por favor me dê um exemplo, pois registro erro no socket do cliente.

Não use socket.io ..., você economizará tempo a longo prazo, basta olhar para os mais de 300 problemas abertos sem respostas ...
O último commit significativo foi há 6 meses...

Esta página foi útil?
0 / 5 - 0 avaliações