2015-10-29 51 views
0

我正在实现两个设备之间的同步过程。网络和移动。我已经计划了一种算法,但不确定其实施的可能性。我的算法是,单个PHP线程来响应两个异步ajax请求

  1. Mobile将生成一个ajax请求到PHP脚本以将其数据同步到数据库。
  2. PHP脚本启动一个事务,然后将数据插入到移动设备发送的数据库中,并收集必须发送给移动设备的数据并发送处理但不提交。
  3. 手机接收到响应,启动一个事务,并发送另一个Ajax请求作为确认到php脚本并在移动端提交。
  4. PHP脚本接收确认Ajax请求,并承诺其数据,以及我在SETP开发2.

我的问题是,是否有可能使用单一的PHP线与两个同步ajax请求工作?

+2

我认为这不是线程。这是关于单独的HTTP请求。 HTTP是无状态的。你需要自己管理两个请求之间的状态。例如,你可以使用普通的PHP会话。 –

回答

2

我将把php的概念留给专家。

我们有一个类似的场景,我们将数据发送到服务器并将其插入一个标记值(例如,不完整),然后我们会回应设备说xyz行被插入。它还将包含每个设备的唯一标识符,以便我们可以跟踪哪个设备发送了哪些数据,我们还将在单独的表(transaction_status)中维护每个设备的唯一标识符,唯一事务标识(uuid)和时间戳的详细信息。确认将在客户端更新,这将基本上从客户端上维护的同步队列中移除事务。

当来自同一客户端的下一组记录到达服务器时,服务器将查询transaction_status表中的匹配条目。如果条目已经可用,则意味着确认没有到达客户端,服务器将在这种情况下响应必要的数据。

如果下一组记录不包含在上次同步期间发送的条目,则那些被视为成功同步和不完整标志的条目将被更新。

我明白这可能是模糊的,但我会尝试在我的空闲时间创建一个图来清晰地描述此场景。

如果您需要更多说明,请留下评论。

任何人都有更好的方法,请随时分享。

0

我终于结束了使用websockets。为了实现PHP中的websocket,我使用了Ratchet。我能够得到我想要实现的。