假设我有一个需要与服务器建立持久连接的应用程序。如何实现连接/重新连接逻辑,这样我就不会浪费资源(功率/带宽),并且在连接出现/改善时我有快速的重新连接时间?如果我只使用连接通知,我可能会遇到与本地网络无关的问题。
如果你能给我看C#
版本,那就太好了。
假设我有一个需要与服务器建立持久连接的应用程序。如何实现连接/重新连接逻辑,这样我就不会浪费资源(功率/带宽),并且在连接出现/改善时我有快速的重新连接时间?如果我只使用连接通知,我可能会遇到与本地网络无关的问题。
如果你能给我看C#
版本,那就太好了。
这是一个非常“巨大”的问题。我可以说我们使用了一个 O/R 映射器,并且对数据库的每个“查询”都需要一个名为 PersistenceBroker 的对象。这个类负责所有与连接、身份验证等相关的 DB Stuff。
我们编写了一个返回“工作”代理的 PersistenceBrokerFactory.GetCurrentBroker()。如果数据库突然失败(无论出于何种原因),CONN 对象将在 30 秒(或您定义的任何内容)后“超时()”。如果发生这种情况,我们会向用户显示他/她离线并显示重新连接按钮。
另一方面,为了提供用户已连接的视觉指示,我们在后台运行了一个线程,每 15 秒检查一次 Internet 连接。我们对 google.com 执行 1 次 ping 操作。;) 如果失败,我们假设 Internet 以某种方式损坏,我们更新状态栏。
如果您愿意,我可以向您展示网络健康监视器的所有代码。我从谷歌那里拿了一些东西,其他的都是我自己做的:)