我不知道這是否可以帶領你進入正確的方向或不...我有一個類似的服務在那裏,當我看着我的訂閱()方法,我可以訪問此:
var context = OperationContext.Current;
var sessionId = context.SessionId;
var currentClient = context.GetCallbackChannel<IClient>();
context.OutgoingMessageHeaders.Clear();
context.OutgoingMessageProperties.Clear();
現在,如果您有一種使用IClient對象的方式,並且從IClient實例中獲取IClient實例的上下文(可以解析它的上下文),那麼可以運行以下兩個語句來執行您想要的操作嗎?
context.OutgoingMessageHeaders.Clear();
context.OutgoingMessageProperties.Clear();
只是從我的想法快速漫步。想知道這是否會解決它,如果沒有其他的東西,就會知道個人信息。你能緩存OperationContext作爲一個SubscriptionObject的一部分,它包含兩個屬性,第一個是OperationContext,第二個是你的IClient對象。
我還沒有想出一個很好的解決方案。我真的不知道所有數據在哪裏緩衝。服務器正在發送數據,然後我告訴它停止,我發現這發生在服務器端,但客戶端在此之後繼續獲取數據。如果我放慢發送速度,我沒有問題。這裏的問題雖然是連接速度會有所不同,我覺得這將需要基於連接進行節流。即使我可以知道緩衝區何時會有所幫助,那麼我可以將自己發送的數據存儲起來。 – thecaptain0220