#pragma once #include #include #include #include #include #include #include #include #include using namespace std; typedef enum MyDirect { UNKNOWN = 0, FS = 1, CTI = 2, ACD = 3, IVR = 4, WS = 5 }Direct; class CWebSocketServer { private: typedef websocketpp::server server; typedef server::message_ptr message_ptr; public: CWebSocketServer(); ~CWebSocketServer(); bool init(uint16_t port = 9002); bool sendMsg(websocketpp::connection_hdl hdl, string msg); void run(); void close(websocketpp::connection_hdl hdl); // 关闭与指定客户端的连接 void stop(); typedef function Callback_RecvMsg; typedef function Callback_Close; void setCallbackRecvMsg(Callback_RecvMsg pRecvFun) { this->pRecvFun = pRecvFun; }; void setCallbackClose(Callback_Close pCloseFun) { this->pCloseFun = pCloseFun; }; private: void on_message(server* s, websocketpp::connection_hdl hdl, message_ptr msg); void on_open(server* s, websocketpp::connection_hdl hdl); void on_close(server* s, websocketpp::connection_hdl hdl); void on_fail(server* s, websocketpp::connection_hdl hdl); private: server m_endpoint; uint16_t m_port; // 端口 Callback_RecvMsg pRecvFun; // 接收消息回调函数 Callback_Close pCloseFun; // 连接断开回调函数 };