{"id":2826,"date":"2014-05-17T10:09:54","date_gmt":"2014-05-17T08:09:54","guid":{"rendered":"http:\/\/www.tutego.de\/blog\/javainsel\/?p=2826"},"modified":"2014-05-17T10:09:54","modified_gmt":"2014-05-17T08:09:54","slug":"real-time-kommunikation-mit-animated-gifs","status":"publish","type":"post","link":"https:\/\/www.tutego.de\/blog\/javainsel\/2014\/05\/real-time-kommunikation-mit-animated-gifs\/","title":{"rendered":"Real Time Kommunikation mit Animated GIFs"},"content":{"rendered":"<p>Ein ziemlich intelligenter Trick, um Daten vom Server zum Client zu senden sind Animated GIFs. Ein GIF kann beliebig viele Frames haben und der Client h\u00e4lt die Verbindung offen um noch \u201cden Rest\u201d zu lesen.<\/p>\n<p><a href=\"https:\/\/vimeo.com\/49447841\">https:\/\/vimeo.com\/49447841<\/a><\/p>\n<p><a title=\"https:\/\/github.com\/videlalvaro\/gifsockets\" href=\"https:\/\/github.com\/videlalvaro\/gifsockets\">https:\/\/github.com\/videlalvaro\/gifsockets<\/a> ist eine JVM-Bibliothek in Java und Clojure, das genau das macht: Einen Server zu bauen, der Frame f\u00fcr Frame zum Client streamt. Es gibt ein Start-Frame, dann kann das Serverprogramm beliebig viele Frames senden und zum Schluss ein Abschluss-Frame \u2013 daf\u00fcr gibt es eine API. Allerdings kodiert das Beispiel die Daten (hier Text) als Grafik \u201cGraphics drawString()\u201d; interessanter w\u00e4re es, Bin\u00e4rdaten \u00fcber Farbwerte zu kodieren und auf dem Client dann auszulesen \u2013 hier ist also noch Platz f\u00fcr ein weiteres Open-Source-Projekt.<\/p>\n<p>Nat\u00fcrlich brauch so etwas nicht wirklich, wenn man <a href=\"https:\/\/de.wikipedia.org\/wiki\/WebSocket\">WebSockets<\/a> nutzen kann. Doch es ist ein interessanter Hack.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ein ziemlich intelligenter Trick, um Daten vom Server zum Client zu senden sind Animated GIFs. Ein GIF kann beliebig viele Frames haben und der Client h\u00e4lt die Verbindung offen um noch \u201cden Rest\u201d zu lesen. https:\/\/vimeo.com\/49447841 https:\/\/github.com\/videlalvaro\/gifsockets ist eine JVM-Bibliothek in Java und Clojure, das genau das macht: Einen Server zu bauen, der Frame f\u00fcr [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","_links_to":"","_links_to_target":""},"categories":[4],"tags":[],"class_list":["post-2826","post","type-post","status-publish","format-standard","hentry","category-open-source"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/2826","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/comments?post=2826"}],"version-history":[{"count":1,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/2826\/revisions"}],"predecessor-version":[{"id":2827,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/2826\/revisions\/2827"}],"wp:attachment":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/media?parent=2826"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/categories?post=2826"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/tags?post=2826"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}