PHP移动数据采集器

PHP移动数据采集器,php,mobile,connection,port,loss,Php,Mobile,Connection,Port,Loss,我在一家港口公司工作,该公司开发管理港口运营的软件。我目前正在为数据采集器开发一个项目 数据采集器是一种便携式设备,用于收集信息,然后将这些信息用于特定系统、库存控制、消耗控制和一般报告 没错,我正在用php开发一个软件,这样操作员就可以管理集装箱港口和港口庭院中发生的其他操作 在那之前,我没有任何问题,但由于港口的庭院受到很多干扰因素的影响,可能会发生信号丢失,因为工作应用程序需要有wi-fi连接。当它与php服务器失去通信时,应用程序停止工作 我们曾考虑在每个收集器上安装apache服务器,

我在一家港口公司工作,该公司开发管理港口运营的软件。我目前正在为数据采集器开发一个项目

数据采集器是一种便携式设备,用于收集信息,然后将这些信息用于特定系统、库存控制、消耗控制和一般报告

没错,我正在用php开发一个软件,这样操作员就可以管理集装箱港口和港口庭院中发生的其他操作

在那之前,我没有任何问题,但由于港口的庭院受到很多干扰因素的影响,可能会发生信号丢失,因为工作应用程序需要有wi-fi连接。当它与php服务器失去通信时,应用程序停止工作

我们曾考虑在每个收集器上安装apache服务器,但意识到这是不可行的


因此,我想问您一个建议,如果可能发生信号丢失,我会保存用户输入的数据。

我假设您至少可以控制客户端设备,因此可以确保它们使用的是现代浏览器。因此,您可以使用HTML5数据存储(Javascript中的localStorage对象)在客户端设备上记录数据。当他们按下按钮、填写表单或其他内容时,使用Javascript将数据写入本地存储,而不是将数据上载到服务器。完成后,请查看是否可以将本地存储的内容上载到服务器(使用Ajax)。如果可以,很好,将其从本地存储中删除;如果没有,请将其保留在那里,以便下次尝试

我认为,您需要添加一个按钮来刷新任何剩余的数据,并训练他们在返回基地时使用它,否则数据将保持不上传。这个按钮,可能是整个界面,需要一个成功的指示,可能还有多少没有上传。或者让数据收集页面定期尝试上传任何未完成的数据。如果他们(试图)转到另一个未完成数据上传的页面,问题就会出现——您可以在离开页面时通过javascript事件在某种程度上警告他们,该事件可以告诉他们“未完成数据上传”。由于存储是永久性的,因此甚至可以关闭浏览器或关闭设备,并在稍后完成上传的范围内重新打开数据采集页面-主要问题是确保确实完成上传的人为因素

此外,您还需要一种可靠的方法来检查两端是否同意数据已上传。仅仅依靠Ajax调用的成功响应或缺少响应是不够的,因为即使数据上传成功,您也可能永远看不到它。一种方法可能是在浏览器端用ID标记数据(可能基于会话ID和时间),这样,如果您没有从服务器获得肯定的响应,您就认为它在浏览器端失败了,但如果它实际上没有失败,服务器就存储了ID,因此,稍后再次上传的相同数据将被视为已完成,因此不会处理两次


这样做的另一个好处是,即使您在范围内,但链接速度较慢,用户也不必等待上传完成,然后再继续下一个数据输入。

是否可以创建一些您的移动用户可以使用的android/iOS应用程序。我知道您可以在本地保存数据,并且只要有可能,它就可以增量地向服务器发送更新(同步)。通过这种方式,即使信号丢失,数据仍将本地保存在设备上,并且可以在任何可能的情况下再次同步。