We use Tornado as our websockets server, using SockJS (an alternative to socket.io).
SpreadServe's RealTimeWebServer is built in Tornado. Spreadsheets loaded into SpreadServeEngine instances are projected into browsers using Tornado. Server side recalcs are pushed to the browser using web sockets.
Tornado with Async/Await coroutines provided in Python 3.5 make up for an excellent stack for a micro-service.