我正在开发一个需要与Web 服务器C# mobile
进行主要交互的应用程序。PHP
但是,应用程序还需要支持“离线模式”,因为连接将通过cellular network
. 该网络可能会随机丢弃请求。我在以前的“离线模式”应用程序中遇到的问题是,当请求导致超时时,服务器可能已经或可能尚未处理该请求。如果多次发送请求会创建重复,这是一个问题。我正在经历这个并想出了以下想法。
- 移动设置一个标头值,例如
UniqueRequestID: 1
与请求一起发送。 - 收到请求后,PHP 服务器将添加
UniqueRequestID
到当前用户会话中$_SESSION['RequestID'][] = $headers['UniqueRequestID'];
- 服务器实现了一个 GetRequestByID,如果
id
当前会话存在则返回 true,否则返回 false。或者,这可以返回请求的缓存结果。
这似乎是一种查看请求是否成功联系服务器的可靠方法。在移动设备中,重新连接到服务器后,我们会检查是否收到了请求。如果是这样,请跳过该待处理offline message
并转到下一个。
问题 我在这里重新发明了轮子吗?这种方法是否容易失败(或者我会陷入困境)?有没有更好的方法/替代方案?
-我在这里向其他开发人员推销这个,我们认为这似乎很简单,暗示这个“系统”可能已经存在于某个地方。
-如果我的 Google 技能今天不及格,我深表歉意。