WebSqlSyncと呼ばれる一般的な同期ソリューションを開発しました。
フレームワークに依存していません。こちらから入手できます:https :
//github.com/orbitaloop/WebSqlSync
READMEファイルの抜粋:
WebSqlSync
ローカルWebSqlデータベース(ナビゲーター内のSQLite)をサーバーに自動的に同期します。(双方向同期:クライアント<->サーバー)
既存のアプリへの統合が非常に簡単で、非常に使いやすい(呼び出す2つの関数:initSyncとsyncNow)
使用法
初期化
libを初期化する必要があります(たとえば、起動ごとに)。
2つのテーブルが自動的に作成されます(まだ存在しない場合は、1つはすべての新しい要素または変更された要素(テーブルnew_elem)を格納し、もう1つは最後の同期の日付を格納します(テーブルsync_info)。SQLiteトリガーも同期するテーブルのINSERTまたはUPDATEを監視するため(変更された要素をnew_elemテーブルに自動的に挿入するため):
DBSYNC.initSync(TABLES_TO_SYNC, webSqlDb, sync_info, 'http://www.myserver.com', callBackEndInit);
TABLES_TO_SYNCは、サーバーと同期するテーブルのリストです。例:
TABLES_TO_SYNC = [
{tableName : 'table1', idName : 'the_id'},
{tableName : 'table2'} //if idName not specified, it will assume that it's "id"
];
同期する
同期を開始するには、syncNow関数を呼び出す必要があります。あなたはそれをX秒ごとに、または例えばいくつかの変更の後に呼び出すことができます:
DBSYNC.syncNow(callBackSyncProgress, function(result) {
if (result.syncOK === true) {
//Synchronized successfully
}
});
そして、それはあなたがクライアントでする必要があるすべてです。サーバー側では、独自のソリューションをコーディングする必要があります(ただし、複雑ではありません)。そして、PHPとJavaにいくつかの例があります。繰り返しになりますが、寄付は大歓迎です。