2012-08-23 29 views
10

Tôi đang cố gắng đánh giá bằng cách sử dụng IndexedDB để giải quyết vấn đề ngoại tuyến. Nó sẽ được phổ biến với dữ liệu hiện đang được lưu trữ trong cơ sở dữ liệu MongoDB (như là).Đồng bộ dữ liệu máy chủ MongoDB với một cửa hàng cục bộ chỉ mụcDB

Khi dữ liệu được lưu trữ trong IndexedDB, nó có thể được thay đổi trên máy chủ MongoDB và tôi cần truyền bá những thay đổi đó. Có bất kỳ khung hoặc Thư viện hiện có nào để làm một số thứ như thế này cho Mongo. Tôi đã biết về CouchDB/PouchDB và không khám phá cả hai.

+0

Bạn nên xem có bất kỳ mã từ thiên thạch là có liên quan. – ranman

+0

Rất thú vị, cảm ơn. Có thể là một giải pháp cho vấn đề thực sự của tôi: viết một ứng dụng ngoại tuyến. Bạn nên làm cho câu trả lời này để tôi có thể cung cấp cho bạn các điểm nếu nó giải quyết được vấn đề của tôi –

+0

Tắt kịch bản ngoại tuyến hoàn chỉnh không được hỗ trợ (đăng nhập ngoại tuyến + thay đổi + đồng bộ hóa với máy chủ khi trực tuyến trở lại): https: // groups. google.com/d/topic/meteor-core/ZVj6RFbKDq0/discussion –

Trả lời

0

Tôi chưa từng làm việc với IndexDB, nhưng vấn đề thiết kế không phải là không phổ biến. Sự hiểu biết của tôi về ứng dụng của bạn là khi máy khách tạo kết nối tới MongoDB, bạn kéo một bộ tài liệu xuống để lưu trữ cục bộ và ngắt kết nối. Các khách hàng sau đó có thể làm những thứ cục bộ (không kết nối với máy chủ dữ liệu), và sau đó đẩy lên những thay đổi.

Con đường tôi nhìn thấy nó, bạn đã có để xử lý hai trường hợp tổng quát:

  1. khi máy chủ MongoDB được cập nhật và phá vỡ tính liên tục với khách hàng, khách hàng sẽ phải
    1. cuộc thăm dò cho dữ liệu (timer?) hoặc
    2. giữ một WebSocket mở để cho các thông báo tự do dòng chảy qua ống
  2. khi người sử dụng cần để thúc đẩy thay đổi dữ liệu sao lưu ống
    1. bạn có thể kết nối lại không đồng bộ, kiểm tra các thay đổi trạng thái, (giải quyết xung đột theo quy tắc kinh doanh của bạn)
    2. có một giao diện phía máy chủ (ánh sáng) để xử lý mâu thuẫn (tùy thuộc vào độ phức tạp của ứng dụng của bạn , so sánh tem thời điểm thay đổi trạng thái trong MongoDB để cập nhật IndexedDB nên đủ)
+0

Bạn có biết về bất kỳ điều gì có thể đã được impemented trong lĩnh vực này. Sử dụng của chúng tôi là ít đơn giản trong những thay đổi không bao giờ được thực hiện tại địa phương Người dùng chỉ có thể thực hiện yêu cầu thay đổi được đẩy đến máy chủ và có thể chấp nhận và/hoặc từ chối. Nếu được chấp nhận, họ phải được đẩy trở lại khách hàng. Vì vậy, trong kịch bản này, chúng ta không bao giờ có thể thay đổi cục bộ và từ xa trên cùng một đối tượng. –

+0

có thể có một cái gì đó trong lĩnh vực backbone.js nhưng đó là một vit ra khỏi giải đấu của tôi. – patrickgamer

Các vấn đề liên quan