问题标签 [node.js-stream]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby - 正确使用套接字和/或赛璐珞::IO
我有一个Pinoccio 微控制器(非常棒,试试吧)。微控制器为其服务器打开一个套接字。我正在一个 Ruby 应用程序中编写 TCP Socket 服务器,我将在其中使用Celluloid::IO。作为我的向导,我在 Node 中遵循这个实现,称为pinoccio-server
我写了一些测试代码,尝试与 Pinoccio 微控制器通信。我可以毫无问题地读取它,但是当我将数据写回套接字时,我永远不会得到我期望的行为。这是代码,有人可以告诉我我是否在滥用 Celluloid::IO 或套接字?
node.js - 在节点js中计算数据字节
我有一个大小为 500 MB 的 vhd(磁盘),其中只写入了 10 MB 的数据,然后是空块,最后还有一个 10 MB 的块。
因此,目前的总数据只有 500 MB 中的 20 MB。我试图在 node.js 中找到一个实用程序,以找出数据字节数,但没有成功。
有一个函数fs.fstatSync(file).size,它给出了总大小。
是否有任何实用程序/函数来计算写入的数据?
node.js - Node.js - 错误:编写 EPIPE 代码:'EPIPE
我在标准输入流上不断收到 EPIPE 错误,但找不到原因:
这是我的代码:
这是我的输出:
我找不到此错误的原因,我也尝试实施
并且从 ffprobe(这是一个检查音频/视频文件规格的软件)打印的每一行都标记为 stderr。例如:
标准错误:ffprobe 版本 2.2.4 版权所有 (c) 2007-2014 FFmpeg 开发人员于 2014 年 7 月 2 日 15:07:45 使用 Apple LLVM 版本 5.1 (clang-503.0.40) (基于 LLVM 3.4svn) 配置:-前缀=/usr/local/Cellar/ffmpeg/2.2.4 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-nonfree --enable-hardcoded-tables --enable- avresample --enable-vda --cc=clang --host-cflags= --host-ldflags= --enable-libx264 --enable-libfaac --enable-libmp3lame --enable-libxvid --enable-libfreetype -- enable-libtheora --enable-libvorbis --enable-libvpx --enable-librtmp --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libvo-aacenc --enable-libass --enable-ffplay - -enable-libspeex --enable-libschroedinger --enable-libfdk-aac --enable-libopus --enable-frei0r --enable-libopenjpeg --extra-cflags='-I/usr/local/Cellar/openjpeg/1.5 .1_1/include/openjpeg-1.5 ' libavutil 52. 66.100 / 52. 66.100
标准错误: libavcodec 55. 52.102 / 55. 52.102 libavformat 55. 33.100 / 55. 33.100 libavdevice 55. 10.100 / 55. 10.100 libavfilter 4. 2.100 / 4. 2.100 libavresample 1. 2. 0 / 1. 2. 2 0. libavresample / 2. 5.102 libswresample 0. 18.100 / 0. 18.100 libpostproc 52. 3.100 / 52. 3.100
json - 使用 Oboe.js、MongoDB 和 Express.js 进行 JSON 流式传输
我正在尝试使用 Oboe.js、MongoDB 和 Express.js 通过 HTTP 进行 JSON 流式传输。
关键是在MongoDB
(Node.js 的 mongodb 本机驱动器)中进行查询,将其(一个 JavaScript 数组)通过管道传输到Express.js
浏览器中并在浏览器中使用Oboe.js
.
我所做的基准streaming
与blocking
MongoDB 查询服务器端和客户端的 JSON 解析进行了比较。
这是两个基准测试的源代码。first number
是a1000 queries
中100 items
(分页)的毫秒数10 million documents collection
,second number
括号之间表示解析 MongoDB 结果数组中的第一项之前的毫秒数。
流媒体基准服务器端:
阻塞基准服务器端:
这些结果真的让我感到惊讶,因为我会认为:
Streaming
会比blocking
每次都快。Oboe.js
JSON.parse
与本机方法相比,解析整个 JSON 数组会更快。Oboe.js
JSON.parse
与本机方法相比,解析数组中的第一个元素会更快。
有人有解释吗?我究竟做错了什么 ?
这也是两个客户端基准测试的源代码。
流式基准测试客户端:
阻塞基准客户端:
提前致谢 !
node.js - 解压streams2管道并清空它的正确方法(不仅仅是刷新)
前提
我正在尝试找到正确的方法来过早终止 Node.js 中的一系列管道流(管道):有时我想在流完成之前优雅地中止它。具体来说,我正在处理主要objectMode: true
和非本地并行流,但这并不重要。
问题
问题是当我unpipe
使用管道时,数据保留在每个流的缓冲区中并被drain
编辑。这对于大多数中间流(例如/ )来说可能没问题,但最后一个流仍然会流向其写入目标(例如文件或数据库或套接字或 w/e)。如果缓冲区包含数百或数千个需要大量时间来耗尽的块,这可能会出现问题。我希望它立即停止,即不流失;为什么要在无关紧要的数据上浪费周期和内存?Readable
Transform
Writable
根据我走的路线,我收到“结束后写入”错误,或者当流找不到现有管道时出现异常。
问题
优雅地终止表单中的流管道的正确方法是什么a.pipe(b).pipe(c).pipe(z)
?
解决方案?
我想出的解决方案是 3 步:
unpipe
管道中的每个流以相反的顺序- 清空实现的每个流的缓冲区
Writable
end
实现的每个流Writable
一些说明整个过程的伪代码:
我真的很担心stream._writableState
内部buffer
和length
属性的使用和修改(_
表示私有属性)。这似乎是一个黑客。另请注意,由于我是管道,pause
因此resume
我们不可能(基于我从 IRC 收到的建议)。
我还整理了一个可以从 github 获取的可运行版本(相当草率):https ://github.com/zamnuts/multipipe-proto (git clone,npm install,查看自述文件,npm start)
node.js - (Node.js)如何将 stdout.pipe 存储到变量中?
我想获得免费的 -m(linux shell 命令)并使用下面的源代码将其结果存储到变量中:
有什么方法可以将 process.stdout 存储在变量中,请给我一些建议
node.js - 需要帮助http服务器和客户端服务器
我使用了一个应用程序进行登录、添加朋友和使用 node.js 和 mongoDB 聊天。我在 ec2 实例上安装了 node.js 和 monogoDB。但是,不知道是否需要使用客户端服务器和http服务器?这是我使用的应用程序 https://github.com/1karthik/Node.js_UserLogin_Template 注意:我是 node.js 和 mongoDB 的新手
node.js - writeStream - 检测到可能的 EventEmitter 内存泄漏
我正在创建一个写流:
使用async.queue,我正在排队这项工作:
收到此警告:
(node) warning: possible EventEmitter memory leak detected. 11 listeners added. Use emitter.setMaxListeners() to increase limit.
有没有不使用的好方法来解决这个问题setMaxListeners(0)
?
节点版本:0.10.29
node.js - 如何使用 Node.js 检测客户端互联网断开连接
我将 node.js 用于游戏服务器。
这是我的服务器脚本
==================================================== ==============================================
客户端脚本
当游戏关闭或退出游戏时,服务器会检测客户端断开连接。那是“关闭”功能和“错误”功能正在调用那个时间。
但是当与客户端系统或设备断开互联网连接时,那个时候“关闭”功能或“错误”功能不会被调用。
如何检测这种客户端断开连接
Node.js 服务器未检测到客户端网络断开连接。
请帮助我,如果有人知道解决方案。
javascript - 随时随地将文本附加到 node.js 流
我fs.createReadStream()
用来读取文件,然后将它们传递给响应。
我想在提供 HTML 文件时添加一个小的 Javascript 函数。
我能想到的唯一方法是将文件读入字符串,将文本附加到字符串,然后将字符串流式传输到响应,但我认为可能有更好/更快的方法来做到这一点。
有没有办法让我随时随地将文本附加到文件中?