I have a Node.js with Socket.io chat application and an XMPP Openfire chat system. I'm looking forward to replacing XMPP with Node.js and Socket.io. However, there is talk that, Node.js with Socket.io would have a problem, if the server crashes and goes back online it would have a bottleneck syndrome or maybe impossible to reconnect 10,000 of it's online users. Is that true?
Another question. In what case would XMPP be more appropriate than Socket.io and vice versa?
XMPP is an open-standard communications protocol for message-oriented middleware (Wikipedia).
Node.js is a JavaScript-based developer tool for creating network services.
Those two things don't really compare. If you have built a chat application with socket.io, it's possible that it'll suffer from bottleneck syndrome, but it depends a lot on your application code.
In general, if you want to go beyond simple browser-based chat, I'd seriously consider XMPP (aka. Jabber), since there XMPP clients readily available for all OS'es.