我正在使用PersistentConnection向連接的客戶端發佈大量數據(許多小包)。它基本上是單向的數據方向(因爲每個客戶端將調用其他服務器上的端點來設置各種訂閱,所以它們不會通過SignalR連接將任何數據推送回服務器)。如何在服務器端節制SignalR客戶端
有什麼方法可以檢測到客戶端無法跟上發送給它的消息嗎?
這個例子可能是一個連接不好的移動客戶端(例如在漫遊的情況下,速度可能會有很大的變化)。如果我們每秒發送100條消息,但客戶端只能處理10條消息,則最終會丟失消息(由於服務器端的消息緩衝區)。
我正在尋找一個服務器端事件,類似於(SignalR)客戶端上完成的事件,例如,
protected override Task OnConnectionSlow(IRequest request, string connectionId) {}
但是,這不是框架的一部分(出於好的理由,我假設)。
我已經考慮過使用這個方法(在Stackoverflow的其他地方建議),讓客戶端告訴服務器(例如每10-30秒)它接收了多少消息,如果這個數字與數量有很大區別發送給客戶端的消息,很可能客戶端無法跟上。
該事件將用於告知分佈式後端客戶端無法跟上,然後關閉數據生成速率。
好問題。我剛剛發佈了一個類似的話,然後看到你的問題。 –