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

时间:2011-12-06 17:02:23

标签: http node.js

我正在编写自己的http模块(我知道node.js包含一个) 我正在使用网络模块 当我收到静态二进制(图片)文件的请求时,如何使用二进制文件生成HTTP响应? 当我为文本文件(例如.html文件)执行此操作时,它只是工作..

1 个答案:

答案 0 :(得分:3)

如果您使用的是网络模块,则可能使用的代码如下:

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函数 e.g。

fileAsAstream.pipe(socket);