socket一开始不注册data事件,3分钟之后再注册。那么这3分钟内收到的数据会丢失吗?
发布于 5 年前 作者 linxiaoziruo 4871 次浏览 来自 问答

socket一开始不注册data事件,3分钟之后再注册。那么这3分钟内收到的数据会丢失吗? nodejs官方文档说socket是可读流的实现,有paused和flowing两种模式,如果处于paused模式的情况下,网络另外一端发送过来的数据会丢失吗?

5 回复

这个好像很容易写个例子

@lellansin 官方文档里面描述的是只有没注册ondata事件,且resume这个流的时候,才会丢失数据。但是我实际写例子,如果3分钟之后再注册时间,这三分钟之内的数据就丢失了。我很疑惑!

不是很确定 stream 有没有啥特殊的逻辑,不过在 JavaScript 里面,是不是数据没人用的话过一段时间就被 GC 了?

双向数据流不会有缓存的哦 参照 pipe

socket 好像默认是 flowing 的

回到顶部