我正在使用 socket.io-stream 库在 2 个节点服务器之间传输文件。
服务器 A:(发送文件)
```
var clientIO = require('socket.io-client');
var ss = require('socket.io-stream');
var clientSocket=clientIO( http://ServerB_Address
);
clientSocket.on('error', (error) => {
控制台日志(错误);
});
var 流 = ss.createStream({objectMode: true});
ss(clientSocket).emit('send-file', stream, data);
var 上载字节 = 0;
变量来自 = 0;
var reader = fs.createReadStream(filePath, {start: from});
reader.pipe(流)
.on('错误', (错误) => {
控制台日志(错误);
})
.on('数据', (块) => {
UploadBytes += 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);
});
});
});
它工作正常,但是当第二个节点服务器停止传输文件时,另一台服务器中的应用程序崩溃并引发未处理的错误事件
请谁能告诉我如何才能捕捉到这个错误? 如果有更好的方法在节点服务器之间传输文件?
为“错误”事件使用事件侦听器。 或者使用纯事件发射器库
如何使用事件监听器来处理错误? 请给我一个例子,因为我为客户端套接字注册了错误。
不要使用 socket.io ...,从长远来看,您将节省时间,只需查看 300 多个未解决的未解决问题...
最后一次重大提交是在 6 个月前...
最有用的评论
不要使用 socket.io ...,从长远来看,您将节省时间,只需查看 300 多个未解决的未解决问题...
最后一次重大提交是在 6 个月前...