Wenn Sie viele Daten in einer SQL-Datenbank auf meinem Server eingegeben haben, wie senden Sie diese Daten mithilfe von Protokollpuffern an einen Dart-Client?Go-Strukturen mit Protokollpuffern serialisieren und sie in Dart über Ajax verwenden
Antwort
Erste Protoc auf Ihrem Computer
sudo apt-get install protobuf-compiler
mit installieren Sie dann die von https://code.google.com/p/goprotobuf/ go Protokollpuffer Bibliothek installieren. Die Dartlang-Version finden Sie hier: https://github.com/dart-lang/dart-protoc-plugin.
Der nächste Schritt besteht darin, eine .proto-Datei zu schreiben, die eine Definition der zu sendenden Nachricht enthält. Beispiele finden Sie hier: https://developers.google.com/protocol-buffers/docs/proto.
Zum Beispiel:
message Car {
required string make = 1;
required int32 numdoors = 2;
}
dann das Protoc Tool verwenden, um eine Go-Datei und eine Dart-Datei für diese Proto-Datei zu kompilieren.
Um ein Car-Objekt in go zu schaffen, erinnern sich die Typen zu nutzen:
c := new(Car)
c.Make = proto.String("Citroën")
c.Numdoors = proto.Int32(4)
Dann können Sie das Objekt über einen http.ResponseWriter senden, w wie folgt:
binaryData, err := proto.Marshal(c)
if err != nil {
// do something with error
}
w.Write(binaryData)
In Mit dem Dart-Code können Sie die Informationen wie folgt abrufen:
void getProtoBuffer() {
HttpRequest.request("http://my.url.com", responseType: "arraybuffer").then((request) {
Uint8List buffer = new Uint8List.view(request.response, 0, (request.response as ByteBuffer).lengthInBytes); // this is a hack for dart2js because of a bug
Car c = new Car.fromBuffer(buffer);
print(c);
});
}
Wenn alles funktioniert, sollten Sie jetzt ein Auto o bject in Ihrem Dart-Anwendung :)
- 1. Wörterbuch in Protokollpuffern
- 2. Wie verwenden Sie OAuth2 in Dart 1.0?
- 3. Ajax serialisieren mit anderen Parametern,
- 4. Testen Dart Ajax HttpRequest
- 5. Ajax Jquery serialisieren
- 6. Verwenden Sie Dart-Callback für umschlossene js
- 7. Verwenden von Futures mit Dart
- 8. Wie Route des Controllers mit Ajax serialisieren
- 9. XmlDocument serialisieren und über HTTPWebRequest senden
- 10. Wie angular2_material -Dart und angular2-Dart
- 11. Verwenden Sie Angular nur in der Seite geladen über Ajax
- 12. Verwenden Sie JSONResponse zum Serialisieren eines QuerySet in Django 1.7?
- 13. Ajax serialisieren; Cant 'lesen' Variablen in PHP
- 14. Gibt es eine Standardzuordnung zwischen JSON und Protokollpuffern?
- 15. Neue Dokumentation über Dart-Isolate
- 16. Verwenden Sie Windows-Authentifizierung mit ASP.Net AJAX
- 17. Verwenden Sie Ajax in Schienen
- 18. Laden Sie ein Dart-Skript dynamisch mit Dart
- 19. Wann würden Sie XML über JSON für Ajax verwenden?
- 20. Beginnt Google Dart zu verwenden? Haben sie einen Closure (oder GWT) zum Dart Compiler gebaut?
- 21. Wie serialisieren und deserialisieren Sie Mailer?
- 22. iCheck und jQuery serialisieren
- 23. So verwenden Sie jQuery .live() mit AJAX
- 24. Google Maps und DART
- 25. Urlcode in Dart
- 26. Serialisieren eines Arrays in Jquery?
- 27. So verwenden Sie AJAX und JSON in meinem Code
- 28. Dart Nodejs und Socketio
- 29. serialisieren Sie eine Spalte und speichern
- 30. Regex mit Dart lang
Ich bin überrascht, dass das Lesen von Binärdaten als String funktioniert. Was machen Sie mit Zeichenkodierungen? Zum Beispiel sollten UTF8-Daten niemals bestimmte Bytefolgen enthalten: http://en.wikipedia.org/wiki/UTF-8#Invalid_byte_sequences –
Entschuldigung, Sie haben absolut Recht! Der ursprüngliche Code funktioniert nicht mit utf-8. Ich werde es aktualisieren ... fertig! – ehrt1974
Tolle Antwort ... können Sie näher erläutern, warum dieser dart2js Hack benötigt wird? Ich treffe es, kurz bevor ich deine Antwort gelesen habe, und ich bin neugierig. – sjr