- Replace `this.state.ws` with `this.websocket` class property for better encapsulation
- Add hot module replacement in index.js for improved development experience
BREAKING CHANGE: WebSocket access pattern changed from state to direct property, may affect external integrations relying on state
- Add proxy timeouts in nginx.conf to handle long connections
- Implement ping/pong handling in server.js WebSocket listener
- Refactor App.js to class component with lifecycle methods and ping interval for WebSocket keep-alive