我已經在Silverlight 3中使用異步套接字模式實現了一項任務。我開始使用Michael Schwarz's implementation並構建於此之上。所以基本上,我的Silverlight應用程序與設備建立持久的套接字連接,然後在設備和Silverlight應用程序之間根據需要雙向傳輸數據。如何檢測套接字斷開?
我正在努力的一件事是如何檢測斷開連接。我可以想到兩種方法:
Keep-Alive。我知道這可以在套接字級完成,但我不知道如何在異步模型中完成此操作。 Socket類如何讓我知道已經斷開連接。
手動保持活動狀態。基本上,我正在讓Silverlight應用程序每隔20秒發送一個虛擬數據包。如果失敗了,我會假定斷開連接。然而,令人難以置信的是,即使我只是拔掉Silverlight應用連接的設備,SocketAsyncEventArgs.SocketError也會報告成功。我不確定這是一個錯誤還是我需要升級到SL4。
任何想法,方向或實施將不勝感激。
你可以調查你的插座嗎? http://stackoverflow.com/questions/722240/instantly-detect-client-disconnection-from-server-socket – sbenderli 2010-07-02 13:56:20
@sbenderli方法不可用Silverlight – AngryHacker 2010-07-02 20:45:02
如何嘗試發送一個空數據包並捕獲套接字錯誤每過一段時間?有點像手動投票? – sbenderli 2010-07-03 16:28:18