#pragma once #include #include #include #include #include #include #include namespace network { class WebSocketServer { public: WebSocketServer(uint16_t port); ~WebSocketServer(); void start(); void broadcast(const std::string& message); void stop(); private: void handleAccept(); void doRead(std::shared_ptr> ws); boost::asio::io_context ioc_; boost::asio::ip::tcp::acceptor acceptor_; std::vector>> sessions_; std::mutex sessions_mutex_; std::atomic running_{true}; }; } // namespace network