我正在使用PersistentConnection向连接的客户端发布大量数据(许多小包)。它基本上是单向的数据方向(因为每个客户端将调用其他服务器上的端点来设置各种订阅,所以它们不会通过SignalR连接将任何数据推送回服务器)。如何在服务器端节制SignalR客户端
有什么方法可以检测到客户端无法跟上发送给它的消息吗?
这个例子可能是一个连接不好的移动客户端(例如在漫游的情况下,速度可能会有很大的变化)。如果我们每秒发送100条消息,但客户端只能处理10条消息,则最终会丢失消息(由于服务器端的消息缓冲区)。
我正在寻找一个服务器端事件,类似于(SignalR)客户端上完成的事件,例如,
protected override Task OnConnectionSlow(IRequest request, string connectionId) {}
但是,这不是框架的一部分(出于好的理由,我假设)。
我已经考虑过使用这个方法(在Stackoverflow的其他地方建议),让客户端告诉服务器(例如每10-30秒)它接收了多少消息,如果这个数字与数量有很大区别发送给客户端的消息,很可能客户端无法跟上。
该事件将用于告知分布式后端客户端无法跟上,然后关闭数据生成速率。
好问题。我刚刚发布了一个类似的话,然后看到你的问题。 –