我已经创建了一个基于无状态协议的流,认为2个Web服务器相互发送非常有限的请求。
因此,如果没有连接关闭,我也不会知道是否突然停止了一个,就没有请求。在请求中可能存在合理的差距,因此我不想将缺少它们视为丢失的连接。
我想做的是发送一个心跳说“我还活着”,当我从流中读到时,我显然不想要心跳数据,所以我的问题。
如何创建一个新的流类来包装另一个流并发送心跳数据而不将其暴露给调用代码?
答案 0 :(得分:1)
假设两侧有两个类似的实现:使用标头发送每个数据块,以便您可以安全地发送零数据心跳块。即translate将外部流写入内部流上的几个写入,如“{Data,100 bytes,[bytes]},{Data,13 bytes,[bytes]}”,heartbeat看起来像“{Ping,0 bytes,[]} ”。在接收端立即响应类似空Ping。