Files
webcamservice/WebSocketService.h
2024-12-15 16:18:16 +08:00

47 lines
1.2 KiB
C++

#pragma once
//#include <websocketpp/config/asio_no_tls.hpp>
//#include <websocketpp/server.hpp>
#include "typeDef.h"
#include <map>
#include <mutex>
//typedef websocketpp::server<websocketpp::config::asio> websocketsvr;
//typedef websocketsvr::message_ptr message_ptr;
using websocketpp::lib::placeholders::_1;
using websocketpp::lib::placeholders::_2;
using websocketpp::lib::bind;
enum ERR_MSG;
class WebSocketService
{
public:
static WebSocketService* getInstance();
void Start(uint16_t port);
void Stop();
void WebSocketRespon(websocketsvr *server, websocketpp::connection_hdl& hdl, ERR_MSG err_code, std::string param = "");
void SendMsg(std::string msg);
private:
WebSocketService();
~WebSocketService();
WebSocketService(WebSocketService&) = delete;
WebSocketService& operator=(const WebSocketService&) = delete;
void OnWebSocketOpen(websocketsvr *server, websocketpp::connection_hdl hdl);
void OnWebSocketClose(websocketsvr *server, websocketpp::connection_hdl hdl);
void OnWebSocketMessage(websocketsvr *server, websocketpp::connection_hdl hdl, message_ptr msg);
private:
std::mutex m_mt_send;
websocketsvr m_web_server;
websocketpp::connection_hdl m_hdl;
std::map<std::string, MSG_ACTION> ACTIONS;
std::map< ERR_MSG, std::string> MSG;
};