首先读取数据以决定在哪里使用 .pipe()
Read data first to decide where to .pipe()
我需要读取一些流(TCP/net.Socket
)的数据,然后才能知道应该在哪里管道。但数据似乎没有达到endSocket
。
socket.on('data', data => {
var endSocket = getEndSocket(data);
stream
.pipe(endSocket)
.pipe(socket); // send response back
});
以下代码确实有效,但我觉得为了简单起见,我应该使用.pipe()
。
socket.on('data', data => {
var endSocket = getEndSocket(data);
endSocket.write(data);
endSocket.pipe(socket); // send response back
});
这取决于您要对其余数据执行的操作。如果将管道添加到套接字并保留数据侦听器,并且通过同一套接字发送更多包,则每个包都将复制到正在管道传输到的所有endSocket
。
适合您的第一个示例的模式是,如果您想要一个初始数据包来选择要连接到的 endSocket。然后,您应该设置双向管道,并断开该数据包上的数据侦听器。您还必须写入已经读取的数据,因为管道不会将其重播到 endSocket。
如果来自同一源套接字的每个包都应该转到不同的 endSocket,那么您的第二个示例看起来很完美。
相关文章:
- 在哪里使用名为“;冻结”;
- Ember.js-接口状态应该存储在哪里
- 在Redux中,我应该在哪里编写复杂的异步流
- 在哪里可以学习ECMAScript标准中尚未包含的JavaScript功能
- 在哪里可以找到RXUI Javascript'时间飞逝'实例
- Redux应用程序结构-在哪里放置服务/业务逻辑
- 在哪里可以找到'项目'在plothover函数中
- Javascript-在哪里放置常量,全局或本地
- Sequelize:这些方法应该驻留在哪里
- AJAX更新面板不;t工作.请帮我找出我错在哪里.
- 在哪里存储HTML模板以在Backbone.js中使用
- ForerunnerDB将其数据库保存在哪里
- 在哪里可以找到R-to-JavaScript编译器
- 很棒的共享按钮application.coffee文件在哪里
- WinJs中的视图状态更改事件在哪里
- 如果在对象上触发了dispatchEvent,我如何才能找到如何侦听它以及在哪里调度事件
- 在哪里可以找到可用的开源三维图表
- 我应该在哪里用javascript存储我的窗口维度
- 在Node.js中,我在哪里可以看到JavaScript方法的源代码,例如hasOwnProperty
- 首先读取数据以决定在哪里使用 .pipe()