题
这个问题已经有一个答案在这里:
- 请WCF网服务 4答案
我有个客户机-服务器系统,双方书面通过我,我想把客户在一个"离线"状态服务器时连接断开/死亡,然后自动地把他们带回的"在线"时,服务器可用。
第一部分,我听信道错误的事件和处理,通过设置客户离线。然后我开始呼叫一个'平'的服务在服务器(每30秒。) 这只是返回布尔,如果它是活的。一旦它是活的客户得到的bool和开关。
这一切工作,该问题,我有的是,当客户的电话的平服务和服务器已关闭,没有响应发送(显然),并最终,经过大约2分钟,我得到一个终点没有发现异常。通过这次我已经尝试过3-4更多的信号,因此有3-4例外情况在酝酿之中。
我的问题是,如何我可以处理与平的服务,更优雅?理想情况下,我想到周期性呼叫服务,可以让我知道,如果它是在网上,并立即可以让我知道,如果它不是。
解决方案
这是什么:
- 如果你检测服务器切断连接,输入一个"Ping"模式
- 在"平模式",你的客户"sendTimeout"的东西,非常简短的,例如像2秒,或因此,由于你的电话服务的平方法应该可以几乎立即回答
- 一旦你"砰"的工作成功了,你再次重新建立的客户代理而设定客户的"sendTimeout"回到原来的价值(默认值是1分钟-取决于什么让你感觉,15秒、30秒-什么)
这样,如果你在"平模式"中,你得到你的答复(或超时)迅速并且您能检测提供的服务迅速。
不隶属于 StackOverflow