服务器-客户端应用程序通过 http/xml 进行通信。服务器发送带有数字或更确切地说是块 ID 的 xml 文件。有时客户端会收到比预期更高的块 id 的 xml。所以我需要排队,因为顺序很重要。我使用 aTreeMap<Integer, Document>
所以我可以将 xmls 添加到地图中,直到收到带有预期块 ID 的 xml。也可能是服务器发送了一个 xml,但客户端接收到了较新的 xml。由于发送和忘记,服务器不知道这一点。所以我的问题是如何处理这个问题?我应该重构架构吗?它有一个模式吗?
例子
expected chunk id / real chunk id
0 0 eval
1 3 add to queue
2 4 add to queue
3 2 add to queue
4 1 add to queue
5 5 eval / eval queue
6 6 eval
- 7 no send to client
7 8 ?
8 9 ?