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

标签 http node.js

我正在编写自己的 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/

相关文章:

javascript - 在 Node/MongoDb 中创建架构

http - 为什么 dio 发布空表单数据?

node.js - 范围在快速路线内工作有点奇怪

node.js - Firebase存储使用云功能仅svg上传不起作用其他格式可以使用base64

php - 如何查看浏览器发送的内容

node.js - 如何在 npm 脚本中获取包版本和日期?

javascript - Node.js:无法读取未定义的属性 'then'(嵌套查询)

javascript - 将多个图像捆绑在一起用于 HTTP?

http - 如何强制浏览器http请求中包含 "host" header

c# - 如何在带有 SSL 的 C# 中使用 HTTP GET 请求? (违反协议(protocol))