应该保持秩序的分块通信

时间:2012-08-02 20:25:27

标签: java client-server network-protocols

服务器 - 客户端应用程序通过http / xml进行通信。服务器发送带有数字或块ID的xml文件。有时客户端会收到比预期更高的块ID。所以我需要排队,因为订单很重要。我使用TreeMap<Integer, Document>所以我可以将xmls添加到地图中,直到收到带有预期块ID的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   ?

1 个答案:

答案 0 :(得分:0)

我构建了OrderedRunnableQueue,您可以在其中添加Runnable个数字。