19 lines
863 B
C++
19 lines
863 B
C++
#pragma once
|
|
#include <asio/thread_pool.hpp>
|
|
#include <drogon/WebSocketController.h>
|
|
#include <memory>
|
|
namespace renderive::web {
|
|
class Renderive_WebSocket_Controller final : public drogon::WebSocketController<Renderive_WebSocket_Controller, false> {
|
|
public:
|
|
explicit Renderive_WebSocket_Controller(std::shared_ptr<asio::thread_pool> 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<asio::thread_pool> scene_pool_;
|
|
};
|
|
}
|