簡體   English   中英

在WCF中檢查客戶端連接的最佳方法是什么

[英]What is the best way to check clients connection in WCF

我有WCF服務,並且有許多客戶端檢索有關憑據的信息。 我想監視這些客戶端的列表,並檢測某些客戶端是否突然死亡(由於連接丟失或應用程序崩潰或其他原因),這樣做的最佳方法是什么?

據我了解,雙工通信合同不是最佳解決方案。

一種方法是實現“心跳”。 為此,請保留一組客戶。 讓客戶端發送一條包含最少信息的簡單消息(心跳消息)。

在服務器端,建立驅逐過程,該驅逐過程會定期查看客戶端列表,以查看是否有任何發生“過時”的情況(即您有一段時間沒有收到心跳信號了)。

除了捕獲CommunicationException之外,實際上沒有什么好方法。 您還可以查看IClientChannel事件以監視連接發生的情況。

client.InnerChannel.Closed += OnChannelClosed;
client.InnerChannel.Opening += OnChannelOpening;
client.InnerChannel.Opened += OnChannelOpened;
client.InnerChannel.Closing += OnChannelClosing;
client.InnerChannel.Faulted += OnChannelFaulted;
client.InnerChannel.UnknownMessageReceived += OnChannelUnknownMessageReceived;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM