一台服务器和两个接入点连接到一台交换机(集线器),该交换机连接到主路由器。当我将我的Android设备连接到接入点2,并向服务器发送请求(HTTP POST),然后连接(当两个接入点超出其他接入点的范围时,自动在两个接入点之间切换)设备到接入点1时,它会进行两次相同的过程。
并且客户端再次发送该包。
有没有办法解决这个问题,比如一次向两个接入点发回一个ACK?或者,问题可能是由于其他原因而发生的?
发布于 2016-08-19 03:07:01
是的,有办法解决这个问题。您必须在应用层通过实现一种机制使操作幂等来解决此问题。首先,问题似乎就像您所描述的那样。
要使操作幂等,您可以在消息中包含一个计数器。客户端为它发送的每一条不同的消息递增计数器。在服务器端,如果它接收到一条带有重复计数器值的消息,它知道该消息是dup,并将其丢弃。你可以想出一些我可能忽略的角落案例,但本质上这就是你应该如何解决它。
https://stackoverflow.com/questions/39022971
复制相似问题