【问题标题】:Synchronize database data across webserver and multiple mobile devices跨网络服务器和多个移动设备同步数据库数据
【发布时间】:2014-05-08 23:49:47
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: php android mysql database synchronization


    【解决方案1】:

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

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多