Uncaught TypeError: Object #<Object> has no method 'distributeMessage'
If I refresh the page or open the page in another tab things resume as normal.
This might be a possible duplicate of issue #145 but not sure.
Likely a Socket.IO "feature".
We delete all remote functions when you disconnect, which is why you see the error.
My guess is that Socket.IO forces said disconnect, which doesn't trigger a reconnect.
(also, not a duplicate.)
What do you mean by 'disconnect'? Like I said, I simply leave the browser idle, I don't close the window. When does the 'disconnect' event fires?
Is there any way to get around it and make a long lived session. Also does any event fires on client-side on disconnect so that I can hide all UIs on disconnect?
Last time I tried, Socket.IO insisted on having things its way, despite much pleading / tweaking of options. I think the closest I got was setting some settings (closeTimeout and some other ones, perhaps?) to arbitrarily high values. Generally a bad idea.
Regarding your second question: now.core.on('disconnect', cb) does what you'd expect it to.
Since nowjs is built on top of socket.io, socket.io's limitations will limit nowjs as well. Can we free nowjs from the dependency on socket.io?
There was a very brief & short-lived experiment at the end of last summer, but since there was a total of 20 or so developer-hours put into said project, it didn't really go anywhere.
SockJS might be a possibility, but I'm not sure how much effort it would be to switch over.
Hmmm, does that mean that with current implementation, nowjs is not production ready?
I have ported now.js to SockJS @ https://github.com/jameskeane/now/tree/sockjs
The only thing I haven't completed yet is session support.