Socket.io: Nodejs socket.io unhandled websocket unhandled error

创建于 2018-10-31  ·  3评论  ·  资料来源: socketio/socket.io

我正在使用 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);
            });
        });
    });

它工作正常,但是当第二个节点服务器停止传输文件时,另一台服务器中的应用程序崩溃并引发未处理的错误事件

stream-error

请谁能告诉我如何才能捕捉到这个错误? 如果有更好的方法在节点服务器之间传输文件?

最有用的评论

不要使用 socket.io ...,从长远来看,您将节省时间,只需查看 300 多个未解决的未解决问题...
最后一次重大提交是在 6 个月前...

所有3条评论

为“错误”事件使用事件侦听器。 或者使用纯事件发射器库

如何使用事件监听器来处理错误? 请给我一个例子,因为我为客户端套接字注册了错误。

不要使用 socket.io ...,从长远来看,您将节省时间,只需查看 300 多个未解决的未解决问题...
最后一次重大提交是在 6 个月前...

此页面是否有帮助?
0 / 5 - 0 等级