<?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: Faye: a Comet client and server for Node.js and Rack</title>
	<atom:link href="http://blog.jcoglan.com/2010/02/02/faye-a-comet-client-and-server-for-node-js-and-rack/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.jcoglan.com/2010/02/02/faye-a-comet-client-and-server-for-node-js-and-rack/</link>
	<description>This dirt was a building before</description>
	<lastBuildDate>Thu, 29 Jul 2010 06:08:58 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1-alpha-15443</generator>
	<item>
		<title>By: James Coglan</title>
		<link>http://blog.jcoglan.com/2010/02/02/faye-a-comet-client-and-server-for-node-js-and-rack/comment-page-1/#comment-4370</link>
		<dc:creator>James Coglan</dc:creator>
		<pubDate>Tue, 25 May 2010 12:40:21 +0000</pubDate>
		<guid isPermaLink="false">http://blog.jcoglan.com/?p=526#comment-4370</guid>
		<description>Camilo: You can, but you don&#039;t need to worry in this case since Faye makes sure it has a valid connection before sending subscriptions. If you need to make sure a connection is present before running some code, you can use the &lt;tt&gt;connect()&lt;/tt&gt; method with a callback, which is what Faye does internally:

&lt;pre&gt;&lt;code&gt;myFayeClient.connect(function() {
    // code goes here
});&lt;/code&gt;&lt;/pre&gt;

&lt;tt&gt;connect()&lt;/tt&gt; simply makes sure there is a connection before running the callback function.</description>
		<content:encoded><![CDATA[<p>Camilo: You can, but you don&#8217;t need to worry in this case since Faye makes sure it has a valid connection before sending subscriptions. If you need to make sure a connection is present before running some code, you can use the <tt>connect()</tt> method with a callback, which is what Faye does internally:</p>
<pre><code>myFayeClient.connect(function() {
    // code goes here
});</code></pre>
<p><tt>connect()</tt> simply makes sure there is a connection before running the callback function.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Camilo</title>
		<link>http://blog.jcoglan.com/2010/02/02/faye-a-comet-client-and-server-for-node-js-and-rack/comment-page-1/#comment-4369</link>
		<dc:creator>Camilo</dc:creator>
		<pubDate>Tue, 25 May 2010 12:23:25 +0000</pubDate>
		<guid isPermaLink="false">http://blog.jcoglan.com/?p=526#comment-4369</guid>
		<description>Great work. Its perfect for a project that I was trasnlating from c# to java, but this is much better. 

Have a question though. In, for example, cometd, on the client (in a browser), the comet client connects and waits until the connection is confirmed before a subscription can be set. Is there a way of knowing when the conneciton is succesfully with faye?

cheers and great work.</description>
		<content:encoded><![CDATA[<p>Great work. Its perfect for a project that I was trasnlating from c# to java, but this is much better. </p>
<p>Have a question though. In, for example, cometd, on the client (in a browser), the comet client connects and waits until the connection is confirmed before a subscription can be set. Is there a way of knowing when the conneciton is succesfully with faye?</p>
<p>cheers and great work.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: James Coglan</title>
		<link>http://blog.jcoglan.com/2010/02/02/faye-a-comet-client-and-server-for-node-js-and-rack/comment-page-1/#comment-4313</link>
		<dc:creator>James Coglan</dc:creator>
		<pubDate>Mon, 15 Mar 2010 21:34:59 +0000</pubDate>
		<guid isPermaLink="false">http://blog.jcoglan.com/?p=526#comment-4313</guid>
		<description>Robert, error handling was on my to-do list and you&#039;ll be happy to know it just got bumped. I just &lt;a href=&quot;http://github.com/jcoglan/faye/commit/9194a9109b0a84c70a2246241e5f065111158f23&quot; rel=&quot;nofollow&quot;&gt;made a commit&lt;/a&gt; that reconnects a client with the server, including maintaining its channel subscriptions, if the server goes away for whatever reason. It does this by setting a time limit within which it expects to get a reply to connect(), since the various connect transports don&#039;t all allow for a robust means of error detection on the request.

This is a first attempt and certainly the timeout needs to be able to be tuned, but let me know what you think.</description>
		<content:encoded><![CDATA[<p>Robert, error handling was on my to-do list and you&#8217;ll be happy to know it just got bumped. I just <a href="http://github.com/jcoglan/faye/commit/9194a9109b0a84c70a2246241e5f065111158f23" rel="nofollow">made a commit</a> that reconnects a client with the server, including maintaining its channel subscriptions, if the server goes away for whatever reason. It does this by setting a time limit within which it expects to get a reply to connect(), since the various connect transports don&#8217;t all allow for a robust means of error detection on the request.</p>
<p>This is a first attempt and certainly the timeout needs to be able to be tuned, but let me know what you think.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Robert K</title>
		<link>http://blog.jcoglan.com/2010/02/02/faye-a-comet-client-and-server-for-node-js-and-rack/comment-page-1/#comment-4309</link>
		<dc:creator>Robert K</dc:creator>
		<pubDate>Sun, 14 Mar 2010 00:08:51 +0000</pubDate>
		<guid isPermaLink="false">http://blog.jcoglan.com/?p=526#comment-4309</guid>
		<description>make that &quot;return setTimeout(...)&quot;</description>
		<content:encoded><![CDATA[<p>make that &#8220;return setTimeout(&#8230;)&#8221;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Robert K</title>
		<link>http://blog.jcoglan.com/2010/02/02/faye-a-comet-client-and-server-for-node-js-and-rack/comment-page-1/#comment-4308</link>
		<dc:creator>Robert K</dc:creator>
		<pubDate>Sun, 14 Mar 2010 00:08:07 +0000</pubDate>
		<guid isPermaLink="false">http://blog.jcoglan.com/?p=526#comment-4308</guid>
		<description>Nice piece of work!  However it&#039;d be nice if there were some support for error handling.  &#039;Looks like your XHR transport code quietly ignores a variety of error cases.

I&#039;m looking specifically at the case where the server gets restarted during a long-poll request.  In this case, there&#039;s no response and the Faye clients simply stop polling.  At a minimum, there should be a way to configure the behavior in this case (e.g. &quot;retry every 10 seconds&quot;)

Also, I&#039;d prefer to have a way to adjust the polling frequency of the Faye.XHR readystate check. (10ms strikes me as a bit aggressive.)

... oh, and also, you might consider doing this:
&lt;blockquote&gt;if (self._xhr.readyState !== 4) setTimeout(handleState, 10)&lt;/blockquote&gt;
... instead of using setInterval.  It&#039;s simpler, and avoids potential issues with multiple setInterval calls getting queued up if CPU performance lags for whatever reason.</description>
		<content:encoded><![CDATA[<p>Nice piece of work!  However it&#8217;d be nice if there were some support for error handling.  &#8216;Looks like your XHR transport code quietly ignores a variety of error cases.</p>
<p>I&#8217;m looking specifically at the case where the server gets restarted during a long-poll request.  In this case, there&#8217;s no response and the Faye clients simply stop polling.  At a minimum, there should be a way to configure the behavior in this case (e.g. &#8220;retry every 10 seconds&#8221;)</p>
<p>Also, I&#8217;d prefer to have a way to adjust the polling frequency of the Faye.XHR readystate check. (10ms strikes me as a bit aggressive.)</p>
<p>&#8230; oh, and also, you might consider doing this:</p>
<blockquote><p>if (self._xhr.readyState !== 4) setTimeout(handleState, 10)</p></blockquote>
<p>&#8230; instead of using setInterval.  It&#8217;s simpler, and avoids potential issues with multiple setInterval calls getting queued up if CPU performance lags for whatever reason.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kamil Trebunia</title>
		<link>http://blog.jcoglan.com/2010/02/02/faye-a-comet-client-and-server-for-node-js-and-rack/comment-page-1/#comment-4274</link>
		<dc:creator>Kamil Trebunia</dc:creator>
		<pubDate>Tue, 02 Mar 2010 17:02:56 +0000</pubDate>
		<guid isPermaLink="false">http://blog.jcoglan.com/?p=526#comment-4274</guid>
		<description>Works flawlessly so far, great job, thank you!</description>
		<content:encoded><![CDATA[<p>Works flawlessly so far, great job, thank you!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: James Coglan</title>
		<link>http://blog.jcoglan.com/2010/02/02/faye-a-comet-client-and-server-for-node-js-and-rack/comment-page-1/#comment-4267</link>
		<dc:creator>James Coglan</dc:creator>
		<pubDate>Mon, 01 Mar 2010 16:39:54 +0000</pubDate>
		<guid isPermaLink="false">http://blog.jcoglan.com/?p=526#comment-4267</guid>
		<description>I have implemented server-side clients that can publish and subscribe, they&#039;ve just not been released yet. Hopefully I&#039;ll get them released this week, in the meantime there&#039;s information in the README on GitHub, for example under Node you&#039;d do:

&lt;pre&gt;&lt;code&gt;// Remote client
client = new Faye.Client(&#039;http://example.com/faye&#039;);

// Local client
server = new Faye.NodeAdapter(options);
client = server.getClient();&lt;/code&gt;&lt;/pre&gt;

And use the client just like you would in a browser.</description>
		<content:encoded><![CDATA[<p>I have implemented server-side clients that can publish and subscribe, they&#8217;ve just not been released yet. Hopefully I&#8217;ll get them released this week, in the meantime there&#8217;s information in the README on GitHub, for example under Node you&#8217;d do:</p>
<pre><code>// Remote client
client = new Faye.Client('http://example.com/faye');

// Local client
server = new Faye.NodeAdapter(options);
client = server.getClient();</code></pre>
<p>And use the client just like you would in a browser.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kamil Trebunia</title>
		<link>http://blog.jcoglan.com/2010/02/02/faye-a-comet-client-and-server-for-node-js-and-rack/comment-page-1/#comment-4266</link>
		<dc:creator>Kamil Trebunia</dc:creator>
		<pubDate>Mon, 01 Mar 2010 16:31:40 +0000</pubDate>
		<guid isPermaLink="false">http://blog.jcoglan.com/?p=526#comment-4266</guid>
		<description>Hello James, have looked through commit history and it seems to me that you did not yet implemented a way to invoke publish() on server side yet, am I right?</description>
		<content:encoded><![CDATA[<p>Hello James, have looked through commit history and it seems to me that you did not yet implemented a way to invoke publish() on server side yet, am I right?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: James Coglan</title>
		<link>http://blog.jcoglan.com/2010/02/02/faye-a-comet-client-and-server-for-node-js-and-rack/comment-page-1/#comment-4178</link>
		<dc:creator>James Coglan</dc:creator>
		<pubDate>Wed, 10 Feb 2010 00:49:41 +0000</pubDate>
		<guid isPermaLink="false">http://blog.jcoglan.com/?p=526#comment-4178</guid>
		<description>Kenneth, I&#039;m working on a set of server-side clients at the moment. For Node, I&#039;m taking the browser client and adding new transports for Node&#039;s HTTP API and for in-process client-server communication. The Bayeux protocol allows in-process clients special access to server state so it&#039;s a little work to implement this. Once I&#039;m happy with it I need to backport the client to Ruby before getting a release out.

You can track progress on this branch: http://github.com/jcoglan/faye/tree/clients</description>
		<content:encoded><![CDATA[<p>Kenneth, I&#8217;m working on a set of server-side clients at the moment. For Node, I&#8217;m taking the browser client and adding new transports for Node&#8217;s HTTP API and for in-process client-server communication. The Bayeux protocol allows in-process clients special access to server state so it&#8217;s a little work to implement this. Once I&#8217;m happy with it I need to backport the client to Ruby before getting a release out.</p>
<p>You can track progress on this branch: <a href="http://github.com/jcoglan/faye/tree/clients" rel="nofollow">http://github.com/jcoglan/faye/tree/clients</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kenneth Falck</title>
		<link>http://blog.jcoglan.com/2010/02/02/faye-a-comet-client-and-server-for-node-js-and-rack/comment-page-1/#comment-4175</link>
		<dc:creator>Kenneth Falck</dc:creator>
		<pubDate>Tue, 09 Feb 2010 19:51:48 +0000</pubDate>
		<guid isPermaLink="false">http://blog.jcoglan.com/?p=526#comment-4175</guid>
		<description>Hi, can you use Faye to connect to itself from within Node.js and subscribe some channels? I&#039;d like to monitor some channels to keep a backlog of messages in memory, and serve the backlog to clients through another URL.</description>
		<content:encoded><![CDATA[<p>Hi, can you use Faye to connect to itself from within Node.js and subscribe some channels? I&#8217;d like to monitor some channels to keep a backlog of messages in memory, and serve the backlog to clients through another URL.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ajaxian &#187; Faye: Bayeaux protocol Comet server for Node.js</title>
		<link>http://blog.jcoglan.com/2010/02/02/faye-a-comet-client-and-server-for-node-js-and-rack/comment-page-1/#comment-4172</link>
		<dc:creator>Ajaxian &#187; Faye: Bayeaux protocol Comet server for Node.js</dc:creator>
		<pubDate>Tue, 09 Feb 2010 11:25:29 +0000</pubDate>
		<guid isPermaLink="false">http://blog.jcoglan.com/?p=526#comment-4172</guid>
		<description>[...] Ruby/EventMachine Comet server to offer a new Node.js server on the Bayeux protocol. The project is Faye and you can check out the code on [...]</description>
		<content:encoded><![CDATA[<p>[...] Ruby/EventMachine Comet server to offer a new Node.js server on the Bayeux protocol. The project is Faye and you can check out the code on [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Sandro Paganotti</title>
		<link>http://blog.jcoglan.com/2010/02/02/faye-a-comet-client-and-server-for-node-js-and-rack/comment-page-1/#comment-4136</link>
		<dc:creator>Sandro Paganotti</dc:creator>
		<pubDate>Wed, 03 Feb 2010 12:00:24 +0000</pubDate>
		<guid isPermaLink="false">http://blog.jcoglan.com/?p=526#comment-4136</guid>
		<description>That is exactly the piece of code I was looking for! Thank you!</description>
		<content:encoded><![CDATA[<p>That is exactly the piece of code I was looking for! Thank you!</p>
]]></content:encoded>
	</item>
</channel>
</rss>
