这个问题已经有一个答案在这里:

我有个客户机-服务器系统,双方书面通过我,我想把客户在一个"离线"状态服务器时连接断开/死亡,然后自动地把他们带回的"在线"时,服务器可用。

第一部分,我听信道错误的事件和处理,通过设置客户离线。然后我开始呼叫一个'平'的服务在服务器(每30秒。) 这只是返回布尔,如果它是活的。一旦它是活的客户得到的bool和开关。

这一切工作,该问题,我有的是,当客户的电话的平服务和服务器已关闭,没有响应发送(显然),并最终,经过大约2分钟,我得到一个终点没有发现异常。通过这次我已经尝试过3-4更多的信号,因此有3-4例外情况在酝酿之中。

我的问题是,如何我可以处理与平的服务,更优雅?理想情况下,我想到周期性呼叫服务,可以让我知道,如果它是在网上,并立即可以让我知道,如果它不是。

有帮助吗?

解决方案

这是什么:

  • 如果你检测服务器切断连接,输入一个"Ping"模式
  • 在"平模式",你的客户"sendTimeout"的东西,非常简短的,例如像2秒,或因此,由于你的电话服务的平方法应该可以几乎立即回答
  • 一旦你"砰"的工作成功了,你再次重新建立的客户代理而设定客户的"sendTimeout"回到原来的价值(默认值是1分钟-取决于什么让你感觉,15秒、30秒-什么)

这样,如果你在"平模式"中,你得到你的答复(或超时)迅速并且您能检测提供的服务迅速。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top