1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
'entity01' => { type => 'text/plain', title => 'Foo', descr => 'Foo description', body => 'This is Foo...', }, 'entity02' => { type => 'application/pdf', title => 'EAV Draft', descr => 'Serialize complex data structures into binary sequences...', body => $pdf_string, }, 'entity03' => { type => 'audio/mp3', title => 'Perfect Strangers', descr => 'Those where the days...', artist => 'Deep Purple', body => $mp3, }
2014-02-07T14:57:07 MuffiViel Spaß beim debuggen, wenn du im Firebug (und Co.) dann deine Grinsemännchen anguckst wenn was nicht funktioniert.
Ich hab mich eine ganze Weile mal mit Flash und dem AMF rumärgern dürfen.
Nie wieder.
Nimm JSON und schicks mit Content-Encoding: gzip. Und gut isses.
2014-02-10T13:08:58 GwenDragonEine Frage zum Handling: Du serialisierst alle Daten.
Streaming und an bestimmte Stellen springen bei Videos ist dann nicht mehr möglich. Das Video muss dann ja komplett herunter geladen werden.
Dann hat das doch nur bei kleinen Datenmengen bzw. großen Bandbreiten Vorteile das zu Serialisieren.
Oder seh ich das falsch.
2014-02-10T14:07:48 MuffiBei dem gzip meinte ich, wenn du binärsachen z.B. per Base64 in JSON verpackst. Ich glaub dann bringts schon was.
Wenn du überwiegend hochkomprimierte Binärdaten verschickst würd ichs weglassen. Das kostet nur zusätzliche Zeit beim Aufbereiten der Daten.
2014-02-07T12:31:02 rostiEdit: Also mal ehrlich, ein Struct nach dem EAV-Pattern ist zum Serialisieren besser geeignet, selbst dann, wenn Datentypen mitgeschleift werden sollen UND eine Unterscheidung zwischen Leerstring und undef; dafür würde ein Byte vollauf genügen.
2014-02-08T13:05:46 pq2014-02-07T12:31:02 rostiEdit: Also mal ehrlich, ein Struct nach dem EAV-Pattern ist zum Serialisieren besser geeignet, selbst dann, wenn Datentypen mitgeschleift werden sollen UND eine Unterscheidung zwischen Leerstring und undef; dafür würde ein Byte vollauf genügen.
ich bin sicher, die leute von booking freuen sich, wenn sie mit hilfe eines experten die ohnehin schon guten werte von Sereal noch weiter verbessern können.
nimm kontakt auf, schreib einen patch!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
sub control{ my $self = shift; my %data = ( stahl => { title => 'Wetzstahl', descr => 'Messer Wetzen mit dem Stahl', type => qq(video/webm), }, ikea => { title => 'Keramikstab', descr => 'Messer auf dem Keramikstab schleifen', type => qq(video/webm), }, ); my $fh = IO::File->new; $fh->open("$self->{FILEDIR}/stahl.webm", O_BINARY|O_RDONLY) or die $!; read($fh, $data{stahl}{body}, -s $fh); $fh->close; $fh->open("$self->{FILEDIR}/ikea.webm", O_BINARY|O_RDONLY) or die $!; read($fh, $data{ikea}{body}, -s $fh); $fh->close; # Serialize $self->{CONTENT} = ''; foreach my $ent( keys %data){ foreach my $att( keys %{$data{$ent}}){ my $val = $data{$ent}{$att}; $self->{CONTENT} .= pack("NNN", length($ent), length($att), length($val)).$ent.$att.$val; } } $self->header("Content-Type" => 'application/octet-stream'); }
2014-02-11T09:22:28 MuffiIch hatte bis jetzt noch nicht das Bedürfnis Binärdaten mit AJAX zu verschicken. Das Zeug ist nicht mal mehr wirklich Cachebar.