【发布时间】:2021-06-02 17:08:01
【问题描述】:
我正在学习 dart,并尝试在 tcp 之上实现一个相当简单的协议。
首先,我无法在 dart 流中找到任何与背压相关的信息。 Google 只是展示了 RxDart,但我宁愿先在 core dart 中实现我的代码。
我如何告诉 tcp 流(或任何其他流)我的消费者太慢了。使用异步流,我将不断获得更新,并且在某个地方,一些缓冲区会变得越来越大。我的理解正确吗?
说到缓冲区,我有办法管理不包含完整消息(部分帧)的 tcp 数据包吗?我可以创建自己的缓冲区并填充它,但这意味着我正在冗余分配内存。是否有一些内部缓冲区,我可以在其中检查它的大小,如果它小于某个阈值,请将其保留在那里。如果我的消息是完整的,请阅读、处理并发送给下游消费者?
【问题讨论】:
标签: dart tcp stream network-programming