The Hidden Complexity of Scaling WebSockets