假设我有一个想要与服务器建立持久连接的应用程序。如何实现连接/重新连接逻辑,以便我不浪费资源(功率/带宽),并且在连接出现/改善时我有快速的重新连接时间?如果我只使用连接通知,我可能会遇到与本地网络无关的问题。
如果您能告诉我C#
版本,可以获得奖励。
答案 0 :(得分:1)
这是一个非常“巨大”的问题。我可以说我们使用O / R Mapper,对数据库的每个“查询”都需要一个名为PersistenceBroker的对象。该课程负责与连接,认证等相关的所有DB Stuff。
我们写了一个PersistenceBrokerFactory.GetCurrentBroker(),它返回“工作”代理。如果数据库突然失败(无论出于何种原因),CONN对象将在30秒后(或您定义的任何内容)“超时()”。如果发生这种情况,我们会向用户显示他/她处于离线状态并显示重新连接按钮。
另一方面,为了提供用户连接的可视指示,我们在后台运行一个线程,每隔15秒检查一次Internet连接。我们对google.com进行了1次ping操作。 ;)如果失败,我们假设互联网以某种方式被破坏,我们更新状态栏。
如果您愿意,我可以向您展示网络运行状况监视器的所有代码。我从谷歌和其他一些我自己做了一些:)