Socket.io: Nodejs socket.io websocket tidak tertangani kesalahan yang tidak tertangani

Dibuat pada 31 Okt 2018  ·  3Komentar  ·  Sumber: socketio/socket.io

Saya menggunakan perpustakaan socket.io-stream untuk mentransfer file antara 2 server node.

Server A: (Kirim File)

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

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

var stream = ss.createStream({objectMode: true});
ss(clientSocket).emit('kirim-file', aliran, data);
var uploadBytes = 0;
var dari = 0;
var reader = fs.createReadStream(filePath, {mulai: dari});
reader.pipe(aliran)
.on('kesalahan', (kesalahan) => {
console.log(kesalahan);
})
.on('data', (potongan) => {
uploadBytes += Buffer.byteLength(potongan);
});

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);
            });
        });
    });

Ini berfungsi dengan baik, tetapi ketika mentransfer file jika server simpul kedua dihentikan, aplikasi di server lain macet dan peristiwa kesalahan yang tidak tertangani dilemparkan

stream-error

Tolong adakah yang bisa memberi tahu saya bagaimana saya bisa menangkap kesalahan ini? Dan jika ada cara yang lebih baik untuk mentransfer file antar server node?

Komentar yang paling membantu

Jangan gunakan socket.io ..., Anda akan menghemat waktu dalam jangka panjang, lihat saja 300+ masalah terbuka tanpa jawaban ...
Komitmen signifikan terakhir adalah 6 bulan yang lalu ...

Semua 3 komentar

Gunakan pendengar acara untuk acara "kesalahan". Atau gunakan perpustakaan emitor acara murni

Bagaimana cara menggunakan pendengar acara untuk kesalahan? Tolong beri saya contoh, karena saya mendaftar kesalahan untuk soket klien.

Jangan gunakan socket.io ..., Anda akan menghemat waktu dalam jangka panjang, lihat saja 300+ masalah terbuka tanpa jawaban ...
Komitmen signifikan terakhir adalah 6 bulan yang lalu ...

Apakah halaman ini membantu?
0 / 5 - 0 peringkat