Node.js BinaryServer:在流端向客户端发送消息?

时间:2017-04-02 13:32:58

标签: javascript node.js

我正在使用node.js BinaryServer来传输二进制数据,并且在客户端调用.Stream.end()函数之后,我想要来自服务器的回调事件。

我似乎无法理解 - 当node.js服务器实际关闭流连接时,如何发送消息或某种通知?

节点JS:

server.on('connection', function(client) {

    client.on('stream', function (stream, meta) {

        stream.on('end', function () {
            fileWriter.end();
            // <--- I want to send an event to the client here
        });
    });

});

客户JS:

client = new BinaryClient(nodeURL);
window.Stream = client.createStream({ metaData });
....
window.Stream.end();
//  <--- I want to recieve the callback message

1 个答案:

答案 0 :(得分:1)

在服务器端,您可以使用.send将流发送到客户端。您可以发送各种数据类型,但在这种情况下,一个简单的字符串就足够了。

在客户端,您还可以收听'stream'事件以从服务器接收数据。

节点JS:

server.on('connection', function(client) {
    client.on('stream', function (stream, meta) {
        stream.on('end', function () {
            fileWriter.end();
            client.send('finished');
        });
    });    
});

客户JS:

client = new BinaryClient(nodeURL);
client.on('stream', data => {
    console.log(data); // do something with data
});
window.Stream = client.createStream({ metaData });
....
window.Stream.end();