跨Web服务器和多个移动设备同步数据库数据

时间:2014-03-29 12:27:19

标签: php android mysql database synchronization

整个场景被认为是使用不可用的连接。当连接可用时,同步将一起发生。

我正在开发的Android应用程序正在进入下一阶段。早些时候我有一种数据推送方式。即从移动设备到服务器。服务器有mysql个数据库。为此,我使用http请求创建了简单的api,并在服务器上发送json数据。

用户可以拥有多个智能手机设备(目前为andorid)。当数据同步时,所有移动本地数据都会被推送到服务器上。任何服务器更改也应反映在移动数据上。跨多个设备的双向同步。

我正在考虑以下情景。对于移动设备,我在android上使用sqllite db。

On Mobile 1 database, Any record can be : insert, update, delete 
On Mobile 2 database, Any record can be : insert, update, delete 
. 
. 
. 
On Mobile `N` database, Any record can be : insert, update, delete

On Server database, Any record can be : insert, update, delete

在所有这些情况下,数据应该与服务器一起在所有设备上同步。但是,当执行同步时,它将在一个移动设备和服务器之间,而不是同时在所有设备之间。

我不知道这个。我想知道我应该使用什么方法?这样所有数据都处于同一状态。

我打算为此开发api。任何建议都会有所帮助。

1 个答案:

答案 0 :(得分:1)

您需要优先使用JSON实现某种消息。任何设备都可以发送消息以在数据库中插入,更新或删除。每个设备都应接收所有消息并将其用作更改日志。

关键概念是设备之间的同步。这种最简单的方法是使用带有mosquitto服务器的MQTT协议。

MQTT是一种用于在多个设备之间发送消息的协议。任何客户端都可以向MQTT服务器(称为代理)发送消息,并且可以保证任何其他客户端在恢复其连接后立即接收所有消息。

这样的东西在Facebook Messenger中使用,因此您可以同时讨论多个设备。如果您在一台设备上向您的朋友发送消息,它会自动弹出为您的Facebook帐户上的所有其他人发送的消息。

MQTT非常简单,功能强大。我相信它可以为您节省大量时间来开发您的应用程序。

结帐http://mqtt.org/http://mosquitto.org/