i didn't say that node js can do everything but at least the socket.io implementation is very simple and there are a lot of features that you can add.
i'v tried to establish a socket server once in java and it was like hell but with node js i'v totally love doing it coz it was just less than 20 line of code and everything works like a charm
XMPP servers like OPENFIRE also totally built in java and provides much more functionality than node.js sockets.
You can store messages in a database like redis and mark them unread and then serve them when the user logs back in. This is the approach I am using right now, let me know if something is wrong with this approach.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.