首先让我解释一下我的问题:
我们正在使用HTTP REST协议来传输聊天消息。对于聊天消息,消息的排序至关重要。由于HTTP是无状态协议,因此我们观察到服务器上的消息是无序接收的。
例如,如果我们发送A,B和C - 在服务器上收到的订单可以是C,B和A.
有没有办法解决这个问题?我不确定是否可以在Android中订购HTTP请求。即使我们尝试这样做,也可能会降低其效率,因为一次只能执行一个HTTP请求。
有没有既定的模式来解决这个问题?
答案 0 :(得分:2)
他们以不可预测的顺序到达的原因是因为这是网络的本质。数据包通过不同的路由点传输,您无法强制它们按顺序排列。即使您按顺序发送,也不能保证按顺序送达。 但好消息是,您可以通过几种不同的方式实现您的目标。
答案 1 :(得分:1)
在我的情况下,我为每个请求分配了时间戳,然后将它们保存在我的数据库中。用户可能会看到他们的消息无序,特别是当他们聊得很快时。但是当它们刷新时,服务器将根据注册的时间戳返回有序列表。