我在同一个网络中有两个接入点和一个主路由器。服务器和两个接入点连接到交换机(集线器),此交换机连接到主路由器。当我将我的Android设备连接到接入点2并向服务器发送请求(HTTP POST)并连接(在超出其他范围时自动在两个接入点之间切换)设备访问点1时,它会进行两次相同的处理。 / p>
当我发送包ACK时,它返回到ap2并超时。然后客户端再次发送包。
有没有办法解决这个问题,比如一次将ACK发送回两个接入点?或者问题可能是由于其他原因而发生的?
答案 0 :(得分:0)
是的,有办法解决它。您必须通过实施使操作幂等的机制在应用程序层中解决它。首先,问题似乎就像你描述的那样。
要使操作具有幂等性,您可以在消息中包含计数器。客户端为其发送的每个不同消息递增计数器。在服务器端,如果它收到一条带有重复计数器值的消息,它就会知道该消息是一个重复消息而它只是删除它。您可以提出一些我可能会忽略的角落案例,但实际上这就是您应该如何解决它。