<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: HowToCode: Reverse AJAX / Http-Push / &quot;Comet&quot; &#8211; Kann der Server Clients aktiv infomieren?</title>
	<atom:link href="http://code-inside.de/blog/2009/10/21/howtocode-reverse-ajax-http-push-comet-kann-der-server-clients-aktiv-infomieren/feed/" rel="self" type="application/rss+xml" />
	<link>http://code-inside.de/blog/2009/10/21/howtocode-reverse-ajax-http-push-comet-kann-der-server-clients-aktiv-infomieren/</link>
	<description>Webdevelopment with ASP.NET MVC, jQuery &#38; the Microsoft Stack</description>
	<lastBuildDate>Thu, 02 Feb 2012 18:16:52 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.2</generator>
	<item>
		<title>By: Jerod Venema</title>
		<link>http://code-inside.de/blog/2009/10/21/howtocode-reverse-ajax-http-push-comet-kann-der-server-clients-aktiv-infomieren/comment-page-1/#comment-46541</link>
		<dc:creator>Jerod Venema</dc:creator>
		<pubDate>Fri, 24 Sep 2010 03:32:38 +0000</pubDate>
		<guid isPermaLink="false">http://code-inside.de/blog/2009/10/21/howtocode-reverse-ajax-http-push-comet-kann-der-server-clients-aktiv-infomieren/#comment-46541</guid>
		<description>Check out WebSync. It&#039;s highly scalable (including server farms/clustering), and based on the Bayeux spec, so it&#039;s open to use with other clients.

www.frozenmountain.com/websync</description>
		<content:encoded><![CDATA[<p>Check out WebSync. It&#8217;s highly scalable (including server farms/clustering), and based on the Bayeux spec, so it&#8217;s open to use with other clients.</p>
<p><a href="http://www.frozenmountain.com/websync" rel="nofollow">http://www.frozenmountain.com/websync</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jashua Newway</title>
		<link>http://code-inside.de/blog/2009/10/21/howtocode-reverse-ajax-http-push-comet-kann-der-server-clients-aktiv-infomieren/comment-page-1/#comment-39489</link>
		<dc:creator>Jashua Newway</dc:creator>
		<pubDate>Thu, 15 Apr 2010 12:41:57 +0000</pubDate>
		<guid isPermaLink="false">http://code-inside.de/blog/2009/10/21/howtocode-reverse-ajax-http-push-comet-kann-der-server-clients-aktiv-infomieren/#comment-39489</guid>
		<description>Wenn Sie arbeiten unter. NET gibt es eine kostenlose Bibliothek namens PokeIn. http://pokein.codeplex.com</description>
		<content:encoded><![CDATA[<p>Wenn Sie arbeiten unter. NET gibt es eine kostenlose Bibliothek namens PokeIn. <a href="http://pokein.codeplex.com" rel="nofollow">http://pokein.codeplex.com</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: mgri</title>
		<link>http://code-inside.de/blog/2009/10/21/howtocode-reverse-ajax-http-push-comet-kann-der-server-clients-aktiv-infomieren/comment-page-1/#comment-32155</link>
		<dc:creator>mgri</dc:creator>
		<pubDate>Thu, 22 Oct 2009 19:03:19 +0000</pubDate>
		<guid isPermaLink="false">http://code-inside.de/blog/2009/10/21/howtocode-reverse-ajax-http-push-comet-kann-der-server-clients-aktiv-infomieren/#comment-32155</guid>
		<description>Also ich schaetze da gibt es jede Menge Probleme zu loesen.

Workerthreads hattest Du schon gesagt, Sockets sind auch begrenzt. Ein effizientes Backend zum Spezial-Webserver ist nicht so einfach - auch da geht wohl 1 Thread pro Client nicht lange gut.

Aber der Killer sind Proxies und vielleicht das Netzwerk an sich (Stichwort Dial on Demand): Du musst den Proxy ueberzeugen die langlebigen Verbindungen offenzuhalten, potentiell sehr viele davon (selbes Problem wie beim Webserver). Die meisten Proxies duerften die Anzahl und Lebensdauer von Verbindungen heutzutage strikt begrenzen, aus Selbsterhaltungstrieb.

Dabei helfen dann vermutlich Keep-Alives, &quot;chunked&quot; Transfer-Encoding oder gleich HTTP CONNECT - das geht dann aber oft nur zum SSL-Port.

Am Ende ist im LAN mit relativ wenigen Usern Polling einfacher (aber Push relativ leicht machbar) und im Internet HTTP-Push etwas was man freiwillig nicht implementieren will. ;-)</description>
		<content:encoded><![CDATA[<p>Also ich schaetze da gibt es jede Menge Probleme zu loesen.</p>
<p>Workerthreads hattest Du schon gesagt, Sockets sind auch begrenzt. Ein effizientes Backend zum Spezial-Webserver ist nicht so einfach &#8211; auch da geht wohl 1 Thread pro Client nicht lange gut.</p>
<p>Aber der Killer sind Proxies und vielleicht das Netzwerk an sich (Stichwort Dial on Demand): Du musst den Proxy ueberzeugen die langlebigen Verbindungen offenzuhalten, potentiell sehr viele davon (selbes Problem wie beim Webserver). Die meisten Proxies duerften die Anzahl und Lebensdauer von Verbindungen heutzutage strikt begrenzen, aus Selbsterhaltungstrieb.</p>
<p>Dabei helfen dann vermutlich Keep-Alives, &#8220;chunked&#8221; Transfer-Encoding oder gleich HTTP CONNECT &#8211; das geht dann aber oft nur zum SSL-Port.</p>
<p>Am Ende ist im LAN mit relativ wenigen Usern Polling einfacher (aber Push relativ leicht machbar) und im Internet HTTP-Push etwas was man freiwillig nicht implementieren will. <img src='http://code-inside.de/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Manuel Wenk</title>
		<link>http://code-inside.de/blog/2009/10/21/howtocode-reverse-ajax-http-push-comet-kann-der-server-clients-aktiv-infomieren/comment-page-1/#comment-32137</link>
		<dc:creator>Manuel Wenk</dc:creator>
		<pubDate>Thu, 22 Oct 2009 08:30:20 +0000</pubDate>
		<guid isPermaLink="false">http://code-inside.de/blog/2009/10/21/howtocode-reverse-ajax-http-push-comet-kann-der-server-clients-aktiv-infomieren/#comment-32137</guid>
		<description>Hi,
ich hab vor ca. 7-8 Jahren mal ein Produkt entwickelt das Long-Polling verwendete (damals haben wir es aber nicht Long-Polling genannt, dachten wir hätten es selber erfunden und damals war AJAX bei uns auch noch nicht unter AJAX bekannt...).

Das war eine ASP.net 1.1 Website Applikation die die Steuerung eines Telefons ermöglichen sollte. Nun muss in der Seite aber auch signalisiert werden wenn es klingelt. Wir haben einen asynchronen Request gemacht mit einem clientseitigen Timeout von 60 Sekunden. Nach 30 Sekunden lieferte der Server einfach ein false zurück und das Spiel lief von vorne (true bedeutete Reload der Page durchführen).  

Serverseitig haben wir einfach ein Thread.Sleep(100) in einer Loop gemacht die entweder nach 30 Sekunden verlassen wurde, oder sofort wenn ein bestimmtes Event auftrat, das war extrem schnell und simpel. Wir hatten aber auch nie mehr als 5 User.

Wenn die Menge der Request für den Server wirklich ein Problem darstellt würde ich vermutlich eher einen eigenen kleinen HTTP Server schreiben der nur die Polling-Requests verarbeitet und intern per TCP mit der Webapplikation kommuniziert. Mit asp.net vom IIS zu einem anderen Server zu switchen wäre vermutlich ein höherer Aufwand.</description>
		<content:encoded><![CDATA[<p>Hi,<br />
ich hab vor ca. 7-8 Jahren mal ein Produkt entwickelt das Long-Polling verwendete (damals haben wir es aber nicht Long-Polling genannt, dachten wir hätten es selber erfunden und damals war AJAX bei uns auch noch nicht unter AJAX bekannt&#8230;).</p>
<p>Das war eine ASP.net 1.1 Website Applikation die die Steuerung eines Telefons ermöglichen sollte. Nun muss in der Seite aber auch signalisiert werden wenn es klingelt. Wir haben einen asynchronen Request gemacht mit einem clientseitigen Timeout von 60 Sekunden. Nach 30 Sekunden lieferte der Server einfach ein false zurück und das Spiel lief von vorne (true bedeutete Reload der Page durchführen).  </p>
<p>Serverseitig haben wir einfach ein Thread.Sleep(100) in einer Loop gemacht die entweder nach 30 Sekunden verlassen wurde, oder sofort wenn ein bestimmtes Event auftrat, das war extrem schnell und simpel. Wir hatten aber auch nie mehr als 5 User.</p>
<p>Wenn die Menge der Request für den Server wirklich ein Problem darstellt würde ich vermutlich eher einen eigenen kleinen HTTP Server schreiben der nur die Polling-Requests verarbeitet und intern per TCP mit der Webapplikation kommuniziert. Mit asp.net vom IIS zu einem anderen Server zu switchen wäre vermutlich ein höherer Aufwand.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

