2016-03-29 8 views
0

Ich habe kürzlich Datensätze verwendet und ich war mir unsicher über die praktischen Einschränkungen in Bezug auf die Gesamtgröße der JSON-Struktur. Gibt es eine empfohlene maximale Länge, z. Könntest du einen ganzen Chat-Verlauf als (anonymen) Datensatz mit vielleicht hunderten einzelnen Einträgen speichern?Empfohlene Verwendung von Datensätzen in deepstream.io

var record = client.record.getRecord('chat/5ak1g'); 

record.set({ 
    2016.03.25.16:22:25: { 
     user: 'Ann', 
     message: 'Hey, whats up?' 
    } 
    2016.03.25.16:22:40: { 
     user: 'Sue', 
     message: 'Wanna get some sushi?' 
    } 
    2016.03.25.16:23:10: { 
     user: 'Ann', 
     message: 'cdn.example.com/sj48s2f4.jpg' 
    } 
    //more messages 
}); 

Also hier ist die Frage: Ist ein Datensatz/in Bezug auf Größe die passende Lösung für ein Problem wie dieses oder ist es passender zu verwenden, um Listen

Wahrscheinlich die json Dokumentstruktur würde wie folgt aussehen RPC?

Vielen Dank im Voraus!

Antwort

0

Es gibt eine feste Grenze von 4 MB pro Nachricht, aber dies sollte für den längsten Chat-Verlauf ausreichend sein. Das Problem ist eher, dass ein Datensatz eine atomare Einheit im Tiefenstrom ist - was bedeutet, dass Sie keinen halben Datensatz laden können (sie senden jedoch Deltas für Aktualisierungen). Wenn es darum geht, (möglicherweise sehr lange) Chat-Historien zu speichern, gibt es zwei Alternativen:

A) Wenn Ihre Nachrichten änderbar bleiben (zB ein Benutzer kann eine Nachricht bearbeiten, nachdem sie gesendet wurde), erstellen Sie einen Datensatz pro Nachricht und Speichern Sie die Datensatznamen in einer Liste. Es gibt eine open issue zum Hinzufügen von Paginierung, um die Handhabung großer Listen effizienter zu machen.

B) Wenn Ihr Chat-Verlauf unveränderlich ist, aber Sie eine große Menge an Geschichten für eine lange Zeit halten wollen, könnten Sie es bauen wie folgt: Chat-Nachrichten

  • ein

    • Verwenden Ereignisse Bauen Back-End-Prozess, der für Veranstaltungen von jedem Chat und speichert sie in einer Datenbank (zB ds.event.listen('chat-message/(.*)',() => {});)
    • hinzufügen RPC hört bestimmte Teile des Chat-Verlauf abrufen
  • Verwandte Themen