我创建了一个基于无状态协议(protocol)的流,认为 2 个 Web 服务器相互发送非常有限的请求。
因此,如果我突然停止一个连接,他们都不会知道,因为没有连接会关闭,根本就没有请求。请求中可能存在合理的间隙,因此我不想将缺少它们视为连接丢失。
我想做的是发送一个心跳来表示“我还活着”,但是当我从流中读取时我显然不想要心跳数据,所以我的问题。
我如何创建一个新的流类来包装另一个流并发送心跳数据而不将其暴露给调用代码?
最佳答案
假设双方有 2 个类似的实现:发送带有 header 的每个数据 block ,以便您可以安全地发送零数据心跳 block 。 IE。将外部流上的写入转换为内部流上的多个写入,例如“{Data, 100 bytes, [bytes]}, {Data, 13 bytes, [bytes]}”,heartbeat 看起来像“{Ping, 0 bytes, []} ”。在接收端立即响应类似的空 Ping。
关于c# - 建立在自定义流之上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10337548/