2

我在 Silverlight 3 中使用异步套接字模式实现了一项任务。我从Michael Schwarz 的实现开始并在此基础上构建。所以基本上,我的 Silverlight 应用程序会建立到设备的持久套接字连接,然后数据会根据需要在设备和 Silverlight 应用程序之间双向流动。

我正在努力解决的一件事是如何检测断开连接。我可以想到两种方法:

  1. 活着。我知道这可以在套接字级别完成,但我不确定如何在异步模型中执行此操作。Socket 类如何让我知道已断开连接。

  2. 手动保活。基本上,我让 Silverlight 应用程序每 20 秒左右发送一个虚拟数据包。如果失败,我会假设断开连接。然而,令人难以置信的是,SocketAsyncEventArgs.SocketError 总是报告成功,即使我只是简单地拔下 Silverlight 应用程序所连接的设备。我不确定这是一个错误还是什么,或者我可能需要升级到 SL4。

任何想法、方向或实施将不胜感激。

4

1 回答 1

0

我最终得到了一个需要目标回答的心跳包。基本上,我发送一个预定义的虚拟数据包,目标设备必须以相同的方式响应,否则连接被认为是无效的。

于 2010-07-04T04:41:21.280 回答