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


Synchronize database data across webserver and multiple mobile devices

整个场景被认为使用连接并非始终可用。当连接可用时,同步将一起发生。

我正在开发的android应用程序将进入下一阶段。早些时候我有单向数据推送。即从移动设备到服务器。服务器上有mysql数据库。为此,我做了一个简单的api与http请求与json数据发送到服务器上。

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

我正在考虑以下场景。对于移动设备,我在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。任何建议都会有帮助的。

您需要实现某种类型的消息,最好使用JSON。任何设备都可以发送消息来插入、更新或删除数据库。每个设备都应该接收所有的消息,并将它们作为一个更新日志。

关键概念是设备之间的同步。对于这个最简单的方法是使用MQTT协议与蚊子服务器。

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

类似的东西在Facebook Messenger中使用,因此您可以同时在多个设备上进行讨论。如果你在一个设备上向你的朋友发送消息,它会自动弹出,在你的facebook帐户上发送到所有其他设备。

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

查看http://mqtt.org/和http://mosquitto.org/