我正在编写自己的 http 模块(我知道 node.js 包含一个) 我正在使用网络模块 当我收到对静态二进制(图片)文件的请求时,如何使用二进制文件生成 HTTP 响应? 当我对文本文件(例如 html 文件)执行此操作时,它就可以正常工作..
最佳答案
如果您正在使用 net 模块,您可能正在使用如下代码:
var server = net.createServer(function (socket) {
});
什么是套接字?它代表网络上的数据流。 在对象中,Socket 是一个 WriteableStream,在这里阅读更多:http://nodejs.org/docs/v0.6.5/api/streams.html
当您读取文件时,您可以将内容作为 String、Buffer 或 ReadableStream 获取
将文件作为流读取的最简单方法是使用函数:http://nodejs.org/docs/v0.6.5/api/fs.html#fs.createReadStream 例如
var fileAsAstream = fs.createReadStream(filePath);
为了将二进制读取流的内容传输到写入流,您可以使用管道函数 http://nodejs.org/docs/v0.6.5/api/streams.html#stream.pipe职能 例如
fileAsAstream.pipe(socket);
关于http - Node.js 通过套接字发送 HTTP 的二进制数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8403781/