Tag: stream

如何在Node中代理媒体stream?

我想能够代理远程icecaststream到客户端。 在过去的几天里,我一直在摆弄很多东西,但没有成功。 用例 : 能够从<audio>标签src提取分析器数据,而不会遇到CORS问题。 我的解决scheme迄今 为了解决CORS问题,阻止我直接从<audio>源文件中创build杠杆声音数据,我试着编写一个小代理,它将请求传递给特定的stream,并在任何其他情况下返回静态。 这是我的代码: require('dotenv').config(); const http = require('http'); const express = require('express'); const app = express(); const PORT = process.env.PORT || 4000; let target = 'http://direct.fipradio.fr/live/fip-midfi.mp3'; // figure out 'real' target if the server returns a 302 (redirect) http.get(target, resp => { if(resp.statusCode == 302) { target = resp.headers.location; } […]

在Node.js中发出HTTP请求并接收multipart / x-mixed-replace响应

我需要向外部服务器发出HTTP GET请求才能开始接收事件。 在请求后,我立即得到multipart/x-mixed-replace响应。 当事件发生时,它将作为XML消息一起发送,并且边界指示该部分的结束。 现在我必须在Node.js中实现它。 用正常的请求我使用node-rest-client ,调用它的get()方法并把我的逻辑放在方法的callback中。 问题在于,只有在响应结束时才执行callback,而在multipart/x-mixed-replace ,只有在连接closures时才执行callback。 有一些其他的NPM模块可以做到吗? 我搜查了NPMregistry,但是我发现结果似乎不适合这个任务。 还是在纯粹的节点上做更好? 我是这样,请举个例子。

Icecast元数据提取在输出audio数据中产生工件

我试图(在NodeJS中 ): 连接到Icecast互联网audiostream。 例如: http : //icecast3.977music.com/comedy parsing响应头并提取icy-metaint值。 将原始audio数据写入文件,同时从audiostream中提取元数据字节,以便: 元数据到达时拦截并parsing。 不要在输出文件中包含元数据字节,以免由于注入的元数据而导致audio失真。 在SmackFu的“非官方”Shoutcast元数据协议页面之后,我已经能够得到这个了: https://gist.github.com/e7474421dcb25e011620 基本上,我能够提取元数据时,预期(只有1个元数据事件在stream转储包括在头脑的最初)。 这部分似乎工作正常。 问题是输出的MP3文件在整个文件中都有明显的audio失真,据推测当元数据字节到达时。 但是,我肯定会提取这些元数据字节,不包括他们在输出文件,所以这是怪异的一部分。 上面的链接中的协议文档没有说输出文件需要做什么,但显然我仍然做错了什么。 有人知道还有什么需要做的audiostream? 提前致谢!

从node.js提供VM实例的推荐方法和工具?

我试图在云中实施一个“ 实验室 ”,让人们有一个沙盒去实验和学习; 即为devops(厨师/傀儡),安装或configuration软件等。我有一个node.js服务器实现来pipe理这个,寻找合理的方式来解决这个问题。 各种select令人眼花缭乱:直接傀儡或厨师,或stream浪似乎是适当的。 但是Openstack,cloudfoundry,Amazon EC2也提供了自己的function集。 理想情况下,微云解决scheme(每个实例多个虚拟机)将是理想的,因为不会有任何大的计算负载。 build议最赞赏。 干杯

nodejs中的工作stream引擎

我正在写一个QA机器人, 其中使用expressjs作为后端服务,客户端使用REST来提问和回复。 所以我正在寻找一个工作stream引擎或一个statemachine库。 已经阅读了JavaScript的工作stream引擎,但似乎在前端使用。 并find一个免费的,但很难用于不熟悉英语的newbe。

如何通过JavaScript下载PDF文件?

我的JavaScript代码向我的node.js服务器发出以下AJAX请求: var url = '/node/download'; var downloadRequest = new goog.net.XhrIo(); downloadRequest.headers.set('content-type', 'application/json'); downloadRequest.send(url); 我的node.js服务器在节点上创build一个pdf,并通过下面的代码将pdf传回客户端: var filestream = fs.createReadStream(pdfpath); res.writeHead(200, { 'Content-disposition': 'attachment; filename=' + filename, "Content-Type":"application/pdf","Content-Transfer-Encoding": "binary"}); filestream.on('data', function(chunk) { res.write(chunk); }); filestream.on('end', function() { res.end(); }); 但是现在我在如何在javascript客户端接收这个响应时遇到了麻烦,所以下载提示会打开,允许用户下载并保存pdf文件。 请帮忙! 感谢提前! PS Plz也build议任何更好的方法来实现我的节点的代码(如果有的话) 编辑:一个可能的解决办法是发送我的要求是这样的: window.location.assign('/node/download'); 这样我得到下载提示,一切正常,除了牺牲了产品的asynchronous性质。 有没有解决这个问题,这样我还可以保持asynchronous?

只读取修改的数据

在我的项目中,我使用fs.watchFile来监听文本文件的修改。 要求只读取上次更新的数据 注意在文本文件数据总是添加,不删除。 示例代码 fs.watchFile(config.filePath, function (curr, prev) { fs.readFile(config.filePath, function (err, data) { if (err) throw err; console.log(data); }); }); 以上代码在修改文件时读取整个文本文件。 任何build议将是伟大的。 工作代码 fs.watchFile(config.filePath, function (curr, prev) { var filestream = fs.createReadStream(config.filePath,{start:prev.size,end:curr.size,encoding:"utf-8"); filestream.on('data', function (data) { console.log(data); }); });

在node.js中获取opensslstream

我有一个使用TLS 1.0的服务器,它给了我一个无限的数据stream在terminal上的命令 ~$ openssl s_client -connect 'serveraddress':5000 这为我提供了一个我的服务器正在做什么的实时xml数据stream。 我想用node.js或其他任何方式连接到它,使我有可能将这个数据stream作为一个websocket或直接到一个JS,但我似乎无法弄清楚如何。 你能帮忙吗? 谢谢 :)

同时向多个客户端提供文件服务

我正在构build一个简单的HTTP服务器,为使用stream的客户端提供相当大的文件。 我需要同时为多个客户提供服务,而且我想知道最简单的方法是什么。 我最初的感觉是使用cluster模块和分派{num CPUs}进程可能是最简单的方法。 var StreamBrake = require('streambrake'); var http = require('http'); var fs = require('fs'); var server = http.createServer(function(req, res) { var stream = fs.createReadStream('/data/somefile'); stream.pipe(new StreamBrake(10240)).pipe(res); }); server.listen(1234, 10); 编辑 :澄清,问题是这个代码将不会开始服务第二个客户端,直到它完成服务的第一个。

在为重新创build的网站运行“azure色网站日志尾巴”时未经授权访问

我有一个安装的Azure网站,并使用PHP和WordPress。 我想使用同一个名称作为运行节点并从github部署的站点,所以我删除了第一个站点,并用我的新信息重新创build了它。 现在,当我尝试运行azure site log tail mysite ,我回到基本上说, 401 – Unauthorized: Access is denied due to invalid credentials. 。 我有其他Azure网站运行在这个相同的帐户/订阅,工作正常,我可以看到我的console.log消息时运行tail 。 我甚至有一个从同一个github仓库/分支部署,所以代码没有任何不同。 唯一的区别是,另一个人build立网站时,它是PHP网站。 但是我在删除和重新创build时使用了我的帐户。 谢谢。