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

3
整个场景考虑到了不一定有连续可用的连接。当连接可用时,同步将全部发生。
我正在开发的安卓应用程序进入了下一个阶段。早期只有单向数据推送,即从移动设备到服务器。服务器有一个mysql数据库。为此,我使用简单的API和带有JSON数据的HTTP请求与服务器进行通信。
用户可以拥有多个智能手机设备(目前仅限安卓)。当数据同步时,所有移动设备上的本地数据都会被推送到服务器上。任何服务器更改也应反映在移动数据上。在多个设备之间实现双向同步。
我考虑了以下场景。对于移动设备,我在安卓上使用sqllite数据库。
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个回答

1
您需要实现一些消息,最好使用JSON格式。任何设备都可以发送插入、更新或删除数据库的消息。每个设备都应该接收所有消息,并将它们用作更改日志。
关键概念是设备之间的同步。为此,最简单的方法是使用MQTT协议和mosquitto服务器。
MQTT是一种在多个设备之间发送消息的协议。任何客户端都可以向MQTT服务器(称为代理)发送消息,并且可以保证任何其他客户端恢复连接后立即接收到所有消息。
Facebook Messenger中使用了类似的功能,因此您可以同时在多个设备上进行讨论。如果您在一个设备上向朋友发送消息,则会自动弹出并在您Facebook帐户上的所有其他设备上发送。
MQTT非常简单且易于使用。我相信它可以节省您开发应用程序的大量时间。
请查看http://mqtt.org/http://mosquitto.org/

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接