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
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?
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 ...
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 ...