Node.js通过套接字发送HTTP的二进制数据

我正在编写自己的http模块(我知道node.js包含一个)我正在使用净模块,当我得到一个静态二进制(图片)文件的请求,如何生成二进制文件的HTTP响应? 当我做的文本文件(如HTML文件),只是工作..

如果你使用的是networking模块,你可能使用的代码如下:

var server = net.createServer(function (socket) { }); 

什么是套接字? 它代表了networking上的数据stream。 在对象中,Socket是一个WriteableStream,在这里阅读更多: http : //nodejs.org/docs/v0.6.5/api/streams.html

读取文件时,可以将内容以String,Buffer或ReadableStream的forms获取

将文件读取为stream的最简单方法是使用函数: http : //nodejs.org/docs/v0.6.5/api/fs.html#fs.createReadStream eg

 var fileAsAstream = fs.createReadStream(filePath); 

为了将二进制读取stream的内容传输到写入stream,可以使用pipe道函数http://nodejs.org/docs/v0.6.5/api/streams.html#stream.pipe函数,例如

 fileAsAstream.pipe(socket);