#pragma once #include #include #include namespace renderive::web { class Renderive_WebSocket_Controller final : public drogon::WebSocketController { public: explicit Renderive_WebSocket_Controller(std::shared_ptr scene_pool); void handleNewMessage(const drogon::WebSocketConnectionPtr& connection, std::string&& message, const drogon::WebSocketMessageType& type) override; void handleNewConnection(const drogon::HttpRequestPtr& request, const drogon::WebSocketConnectionPtr& connection) override; void handleConnectionClosed(const drogon::WebSocketConnectionPtr& connection) override; WS_PATH_LIST_BEGIN WS_PATH_ADD("/renderive"); WS_PATH_LIST_END private: std::shared_ptr scene_pool_; }; }