socket.io-stream发射与开启

时间:2018-09-25 17:31:45

标签: javascript node.js sockets socket.io

socket.io-stream文档包含以下用于发送和接收流数据的示例:

// send data
ss(socket).on('file', function(stream) {
  fs.createReadStream('/path/to/file').pipe(stream);
});

// receive data
ss(socket).emit('file', stream);
stream.pipe(fs.createWriteStream('file.txt'));

根据此示例,似乎我们应该使用“ on”发送数据并使用“ emit”接收数据。但这似乎与我到目前为止所看到的所有示例相反-我们应该使用“发射”来发送数据,而应该使用“打开”来接收数据。哪个是对的?以及我该如何收听流事件?

1 个答案:

答案 0 :(得分:0)

emit将发送一条消息,然后继续收听该消息。现在,取决于您在服务器或客户端中的位置,消息将转到另一侧,即,如果您在客户端上并且发出,则服务器将接收消息,反之亦然。您在此处使用的是npm软件包socket.io-stream,该软件包可扩展套接字以流式传输数据。这个想法是客户端请求图像,然后服务器将图像“流”到它们。