OK! I've gotten to the bottom of this. Here's a gist with my example/test application
https://gist.github.com/evantahler/7095751 which I will reference below.
This problem exists with both the default in-memory engine and the redis engine. I have
an extension stubbed (here) which under certain circumstances I either didn't call the `callback()` or called-back with `callback(null)`. I do this when clients send 'server' messages which I don't want repeated back (and the server acknowledges with a receipt message later on).
In older versions of faye `callback(null)` was OK, but it seems that now in faye 1.0.x that callback is very important, as not receiving it cause the client to suspect a connection error (which seems pretty reasonable now that I think about it).
The question becomes: How can I write an extension which A) won't crash the client and B) won't echo the message?
To run my test app:
- npm install
- npm start
- prove that by default everything works OK by `say("hello")` and chat between tabs
- prove that the extension with a `callback(null)` is the culprit by `say("break")` and watching on that tab disconnect in ~1 minute after the command is sent.