{"id":247,"date":"2009-02-20T10:19:00","date_gmt":"2009-02-20T10:19:00","guid":{"rendered":"http:\/\/www.tutego.de\/blog\/javainsel\/?p=247"},"modified":"2009-02-20T10:19:00","modified_gmt":"2009-02-20T10:19:00","slug":"emite-chat-client-und-gwt-xmpp-bibliothek","status":"publish","type":"post","link":"https:\/\/www.tutego.de\/blog\/javainsel\/2009\/02\/emite-chat-client-und-gwt-xmpp-bibliothek\/","title":{"rendered":"emite &#8211; Chat-Client und GWT XMPP Bibliothek"},"content":{"rendered":"<p>Eine tolle GWT-Anwendung\/Bibliothek ist <a title=\"http:\/\/code.google.com\/p\/emite\/\" href=\"http:\/\/code.google.com\/p\/emite\/\">http:\/\/code.google.com\/p\/emite\/<\/a>:<\/p>\n<p><a href=\"http:\/\/emite.googlecode.com\"><img decoding=\"async\" src=\"http:\/\/emite.googlecode.com\/svn\/wiki\/emite-0.4.5.png\" \/><\/a><\/p>\n<p>Der Chat-Client l&#228;uft im Browser als GWT-Anwendung. &#220;ber einen Proxy kann dann der Client (Browser) direkt mit dem Xmpp Server sprechen. (Noch ist ein Proxy n&#246;tig, siehe <a title=\"http:\/\/ejohn.org\/blog\/cross-site-xmlhttprequest\/\" href=\"http:\/\/ejohn.org\/blog\/cross-site-xmlhttprequest\/\">http:\/\/ejohn.org\/blog\/cross-site-xmlhttprequest\/<\/a>). Das hei&#223;t, emite implementiert das <a href=\"http:\/\/xmpp.org\/rfcs\/rfc3920.html\">Extensible Messaging and Presence Protocol (XMPP)<\/a>, um &#252;ber <a href=\"http:\/\/xmpp.org\/extensions\/xep-0124.html\">Bidirectional-streams Over Synchronous HTTP (BOSH)<\/a> die Daten zum Chat-Server zu senden. Da emite auf der einen Seite eine Bibliothek ist und auf der anderen Seiten ein Chat-Client mit der h&#252;bschen Gui, l&#228;sst sich die Bib. nat&#252;rlich auch getrennt nutzen; eine Nachricht wird etwas so versandt:<\/p>\n<pre class=\"prettyprint\">Session session = Suco.get(Session.class);<br \/>session.login(XmppURI.uri(&quot;me@domain&quot;, &quot;myPassword&quot;);<br \/>Message message = new Message(&quot;send this&quot;);<br \/>session.send(message);<\/pre>\n<p><\/p>\n<p>Intern setzt emite auf <a title=\"http:\/\/code.google.com\/p\/suco\/\" href=\"http:\/\/code.google.com\/p\/suco\/\">http:\/\/code.google.com\/p\/suco\/<\/a> auf. Suco ist ein einfaches DI-Framework f&#252;r GWT-Applikationen zusammen mit einem Eventing-Framework. (Suco ist nicht Annotationsgetrieben, da kein echtes Reflection mit GWT m&#246;glich ist. Mit einem speziellen Builder k&#246;nnte man da aber was machen. Hm&#8230;)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Eine tolle GWT-Anwendung\/Bibliothek ist http:\/\/code.google.com\/p\/emite\/: Der Chat-Client l&#228;uft im Browser als GWT-Anwendung. &#220;ber einen Proxy kann dann der Client (Browser) direkt mit dem Xmpp Server sprechen. (Noch ist ein Proxy n&#246;tig, siehe http:\/\/ejohn.org\/blog\/cross-site-xmlhttprequest\/). Das hei&#223;t, emite implementiert das Extensible Messaging and Presence Protocol (XMPP), um &#252;ber Bidirectional-streams Over Synchronous HTTP (BOSH) die Daten zum Chat-Server [&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,15],"tags":[],"class_list":["post-247","post","type-post","status-publish","format-standard","hentry","category-open-source","category-web-frameworks"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/247","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=247"}],"version-history":[{"count":0,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/247\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/media?parent=247"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/categories?post=247"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/tags?post=247"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}