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