c# - 建立在自定义流之上

标签 c# stream

我创建了一个基于无状态协议(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/

相关文章:

javascript - 使用ajax调用C#事件不起作用

c# - 将类/实例函数作为函数中的参数传递

python - 使用 python Popen 读取最后一行

C# 到 C++11 的转换 : delegate templates

c# - 找不到 EasyNetQ 字段 'RabbitMQ.Client.ConnectionFactory.AutomaticRecoveryEnabled'

java - 从两个列表创建映射,其键和值作为同一对象

node.js - 通过 Node 将浏览器麦克风流连接到 Google Speech Api

node.js - 流读取(0)指令

c++ - 套接字上的音频 C++

c# - 对象的通用列表包含短返回 false