I once made a small five-room MUD using a java server. It was okay, but it was so painful doing session management, anti-spoofing and broadcasting that I never took it any further.
I've recently been reading about how good nodejs is at being a mini webserver with inbuilt socket management system. Initially I bounced off the idea of a bespoke socket implementation because I really wanted freedom to create an app or client using whatever I wanted... Using socket.io within node means the client has to use socket.io. after reading up on the benefits of it, though, I thought "why not" and I've been learning nodejs and its patterns.
The allure of "easy" asynchronous coding was another big draw of learning node... One problem I had with the java server was when something happened to one player I had to spool up threads to iterate through the other players to broadcast it to others.. then you had cross thread nonsense and it all got painful. Node is supposed to get rid of all that by keeping things on the same thread...
My first experience has been good.. it's an incredibly simple language, being pretty much vanilla JavaScript. I'm really not a fan of duck-typing... I miss the infallible intellisense of c#! But there's enough information on the internet to figure it out.
The real star of the show is webstorm. It makes development really easy (despite duck-typing messing up the intellisense), and it's been solid as a rock
I'll write more when my little game starts to take shape.