我目前正在開發一個使用SignalR(2.1)集線器的應用程序。SignalR:在C#客戶端檢測活連接
我有1個WPF客戶端,另一個是WCF客戶端。 一切工作正常,因爲他們完美地傳遞消息。
我現在唯一面臨的問題是,我注意到,當應用程序因爲自動重啓等原因而關閉時,OnDisconnected未被解僱,WCF服務器關閉以及其他一些問題。超時是30秒的默認值。即使過了1天,我也永遠不會打電話(我試過)。但是,超時適用於Web客戶端。
它只適用於我呼叫hub.connection.stop()。
但是,當客戶端是瀏覽器時,Ondisconnected方法非常有效。
因此,我想問一下Signal R Hub端是否有任何方法可以檢查客戶端是否仍然連接或已經退出(如ping)?
1)你應該在github上爲.net信號客戶端提交一個bug(或者他們的alreday有錯誤?)。 2)您可以輕鬆實現自己的ping機制,在客戶端和集線器之間來回發送機制 –
嗯,我通讀並注意到這個文本說 「如果您的Web服務器停止工作或應用程序重新啓動,則不會調用OnDisconnected方法。因此,您的數據存儲庫可能具有不再有效的連接ID記錄。在http://www.asp.net/signalr/overview/signalr-20/hubs-api/mapping-users-to-connections。因此,我知道他們知道這件事。但是,我的問題是,是否有任何內置的方式讓SignalR集線器注意到連接是否已被丟棄,而不是每隔幾秒鐘就會ping通。 – Kiong