WebSocket server wrapper