【发布时间】:2017-07-19 16:05:26
【问题描述】:
背景
这是我第一次尝试响应式编程。 我有一个不时接收数据缓冲区的流。
当缓冲区以02 开始时,表示消息的开始,而当缓冲区以03 结束时,表示消息的结束。
例子:
- - - 02 53 44 5a - - - 52 6a 72 7a - - - 62 32 62 0d - 0a 03 - - - - >
目标
我的目标是每当我检测到一条消息完成时触发一个事件,并将整个消息作为参数。
研究
看了几个tutorials on reactive programming和RxJS之后,我知道我要创建一个hot observable。
通过我的研究,我相信我想创建一个“meta-observable”或“meta-stream”,即一个 observable 的 observables 或一个流的流(这可能会令人困惑......)。
我的计划如下:
1 - 为所有传入的缓冲区消息创建一个 observable
2 - 订阅第 1 步,并创建一个检测消息开头 (02) 和消息结尾 (03) 的 observable
3 - 订阅步骤 2 来处理数据。
所以,我的图表如下所示:
- 05 34 43 31 - - - 12 23 43 - - 02 53 44 5a - - - 52 6a 72 7a - - - 62 32 62 0d - 0a 03 - - - - >
- - 02 53 44 5a - - - 52 6a 72 7a - - - 62 32 62 0d - 0a 03 - - |
问题
1 - 因为我是通过 node.js 中的套接字接收这些数据的:
socket = net.createConnection( { host: "localhost", port: 8080}, () => {
socket.on( "data", console.log );
} );
我认为我不能使用 rxjs 提供的 EventEmmiter 桥接器。我必须使用Observer.create,对吗?
2 - 即使我解决了问题 1,我也不知道如何为这种效果创建一个流。有人可以发布一个代码 sn-p 作为示例吗?
【问题讨论】:
标签: javascript node.js stream rxjs observable