Se si dispone di una grande quantità di dati digitati in un database sql sul mio server, come si inviano questi dati a un client di dart utilizzando i buffer di protocollo?Come serializzare le strutture Go utilizzando i buffer di protocollo e utilizzarle in Dart su Ajax
Come serializzare le strutture Go utilizzando i buffer di protocollo e utilizzarle in Dart su Ajax
risposta
prima cosa installare ProtoC sul computer utilizzando
sudo apt-get install protobuf-compiler
Poi installare la libreria di buffer protocollo vanno da https://code.google.com/p/goprotobuf/. La versione di dartlang può essere trovata qui: https://github.com/dart-lang/dart-protoc-plugin.
Il passo successivo è scrivere un file .proto contenente una definizione del messaggio da inviare. esempi possono essere trovati qui: https://developers.google.com/protocol-buffers/docs/proto.
Ad esempio:
message Car {
required string make = 1;
required int32 numdoors = 2;
}
quindi utilizzare lo strumento ProtoC per compilare un file go e un file dart per il file proto.
per creare un oggetto auto in movimento, ricordarsi di utilizzare i tipi di condizione:
c := new(Car)
c.Make = proto.String("Citroën")
c.Numdoors = proto.Int32(4)
Quindi è possibile inviare l'oggetto su un http.ResponseWriter, w come segue:
binaryData, err := proto.Marshal(c)
if err != nil {
// do something with error
}
w.Write(binaryData)
In il codice Dart, è possibile recuperare le informazioni come segue:
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);
});
}
Se tutto ha funzionato, ora si dovrebbe avere una Macchina o bject nella tua applicazione Dart :)
- 1. Installare i buffer di protocollo su Windows
- 2. Codifica delle strutture di dati ciclici (ad esempio grafici diretti) utilizzando i buffer di protocollo
- 3. come serializzare/deserializzare una mappa in go
- 4. Come utilizzare i buffer di protocollo?
- 5. Buffer per Android e Protocollo
- 6. dizionario nel buffer di protocollo
- 7. come utilizzare il buffer di protocollo in asp.net vnext?
- 8. Go- Copia tutti i campi comuni tra le strutture
- 9. Progetto Python utilizzando buffer di protocollo, Problemi di distribuzione
- 10. Registrazione buffer di protocollo
- 11. Protocollo Buffer: Enum problema
- 12. Scala Akka e buffer di protocollo
- 13. Buffer di protocollo C# .net - supporto protobuf-net per serializzare il dizionario dei valori degli oggetti?
- 14. Inizio array di strutture in Go
- 15. Penalità di prestazioni di getSerializedSize() in buffer di protocollo
- 16. Buffer di protocollo, dove usarli?
- 17. Java serializzazione con protocollo Buffer
- 18. Alternative ai buffer di protocollo
- 19. Boost.Asio con i buffer del protocollo google
- 20. I buffer del protocollo Google confrontano
- 21. Buffer del protocollo di Google in C#
- 22. Estensione dei buffer di protocollo in Java
- 23. Buffer protocollo Delphi?
- 24. Come disabilitare un pulsante utilizzando i collegamenti dati in Dart?
- 25. buffer protocollo Java RPC Pila
- 26. Come serializzare i dati in C
- 27. Come implementare le proprietà dinamiche in Dart?
- 28. Come utilizzare Go con il protocollo LDAP
- 29. C'è un modo per avvolgere i buffer di protocollo in Objective-C e sfruttare ancora l'ereditarietà?
- 30. Esistono database che supportano i buffer di protocollo?
Sono sorpreso che leggere i dati binari come una stringa funziona. Cosa fai riguardo le codifiche dei personaggi? Ad esempio, i dati UTF8 non dovrebbero mai contenere determinate sequenze di byte: http://en.wikipedia.org/wiki/UTF-8#Invalid_byte_sequences –
Scusa, hai assolutamente ragione! Il codice originale non funziona con utf-8. Lo aggiornerò ... fatto! – ehrt1974
Risposta straordinaria ... puoi approfondire il motivo per cui è richiesto questo dart2js mod? L'ho colpito poco prima di leggere la tua risposta e sono curioso. – sjr