-1

假设我有一个需要与服务器建立持久连接的应用程序。如何实现连接/重新连接逻辑,这样我就不会浪费资源(功率/带宽),并且在连接出现/改善时我有快速的重新连接时间?如果我只使用连接通知,我可能会遇到与本地网络无关的问题。

如果你能给我看C#版本,那就太好了。

4

1 回答 1

1

这是一个非常“巨大”的问题。我可以说我们使用了一个 O/R 映射器,并且对数据库的每个“查询”都需要一个名为 PersistenceBroker 的对象。这个类负责所有与连接、身份验证等相关的 DB Stuff。

我们编写了一个返回“工作”代理的 PersistenceBrokerFactory.GetCurrentBroker()。如果数据库突然失败(无论出于何种原因),CONN 对象将在 30 秒(或您定义的任何内容)后“超时()”。如果发生这种情况,我们会向用户显示他/她离线并显示重新连接按钮。

另一方面,为了提供用户已连接的视觉指示,我们在后台运行了一个线程,每 15 秒检查一次 Internet 连接。我们对 google.com 执行 1 次 ping 操作。;) 如果失败,我们假设 Internet 以某种方式损坏,我们更新状态栏。

如果您愿意,我可以向您展示网络健康监视器的所有代码。我从谷歌那里拿了一些东西,其他的都是我自己做的:)

于 2008-08-25T14:39:11.480 回答