Ich versuche, protobuf Nachricht von Server-Seite (Base64 String) zu Javascript-Objekt zu entschlüsseln. Verwenden Sie zum Dekodieren protobuf.js.Wie zu entschlüsseln protobuf base64 Zeichenfolge zu js Objekt
Wie doc vorschlagen:
var builder = ProtoBuf.newBuilder({ convertFieldsToCamelCase: true });
var YourMessage = builder.build("YourMessage");
var buffer = ...; // E.g. a buffer received on a WebSocket
var myMessage = YourMessage.decode(buffer);
...
var b64str = ...; // E.g. a string fetched via AJAX
var myMessage = YourMessage.decode64(b64str);
Dies ist, wie ich versuche, es zu tun (Daten - base64 string):
var proto = dcodeIO.ProtoBuf;
var buffer = dcodeIO.ByteBuffer;
var b = buffer.wrap(data,"binary");
var builder = proto.newBuilder({ convertFieldsToCamelCase: true });
builder.define("Events");
var message = builder.build("Events");
var result = message.decode(b); //also try to decode base64 string - message.decode64(data);
ich Fehler bekommen
Decoder/decode64 undefined
zu erstellen Ich kann nicht in dem Code sehen, wo Sie in der Proto-Datei oder Text laden, der Ihr Protobuf-Schema definiert . Sie sollten eine Zeile wie 'ProtoBuf.loadProtoFile (" tests/example1.proto ", builder) haben," wo Sie Ihre .proto-Definition angeben. Das würde erklären, dass der Builder keine Nachrichten erstellt und die Nullwerte, die Sie erhalten, –
@PhilipPryde danke, ich habe den Deskriptor losted. –
Hat das dann für dich funktioniert? Wenn ja, werde ich meinen Kommentar auf eine Antwort stoßen ... –