【发布时间】:2017-11-05 10:58:42
【问题描述】:
我有一个进程会每隔一段时间向我发送数据包,我需要根据数据包到达的时间等来管理该流。在某些时候,我也会关闭流和进程。
现在,我正在使用一组计时器来执行此操作,但我希望我可以使用 rxjs 来执行此操作,因为它似乎非常适合这种事情。到目前为止,我还没有取得太大的成功。
问题
流应该定期向我发送数据包,但它通常会偏离很多,有时会卡住。
我想在以下情况下关闭流:
- 如果超过
startDelay将第一个数据包发送给我。 - 第一个数据包发送后,如果两个数据包之间有超过
middleDelay的停顿。 - 经过一段固定时间
maxChannelTime。
当我由于上述任何原因即将关闭流时,我首先要求它礼貌地关闭,以便它可以进行一些清理。有时它还会在清理过程中向我发送最终数据包。但我希望在关闭流并忽略更多消息之前等待清理和最后一个数据到达的时间不超过cleanupTime。
细化
我将通过使用 Observable 包装事件来创建“流”。我这样做没有问题。
通过“关闭”一个流,我的意思是告诉进程停止发送数据,并可能关闭(即死亡)。
【问题讨论】:
标签: javascript node.js asynchronous rxjs