47 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| #ifndef HV_WEBSOCKET_SERVER_H_
 | |
| #define HV_WEBSOCKET_SERVER_H_
 | |
| 
 | |
| /*
 | |
|  * @demo examples/websocket_server_test.cpp
 | |
|  */
 | |
| 
 | |
| #include "HttpServer.h"
 | |
| #include "WebSocketChannel.h"
 | |
| 
 | |
| #define websocket_server_t      http_server_t
 | |
| #define websocket_server_run    http_server_run
 | |
| #define websocket_server_stop   http_server_stop
 | |
| 
 | |
| namespace hv {
 | |
| 
 | |
| struct WebSocketService {
 | |
|     std::function<void(const WebSocketChannelPtr&, const HttpRequestPtr&)>  onopen;
 | |
|     std::function<void(const WebSocketChannelPtr&, const std::string&)>     onmessage;
 | |
|     std::function<void(const WebSocketChannelPtr&)>                         onclose;
 | |
|     int ping_interval;
 | |
| 
 | |
|     WebSocketService() : ping_interval(0) {}
 | |
| 
 | |
|     void setPingInterval(int ms) {
 | |
|         ping_interval = ms;
 | |
|     }
 | |
| };
 | |
| 
 | |
| class WebSocketServer : public HttpServer {
 | |
| public:
 | |
|     WebSocketServer(WebSocketService* service = NULL)
 | |
|         : HttpServer()
 | |
|     {
 | |
|         this->ws = service;
 | |
|     }
 | |
|     ~WebSocketServer() { stop(); }
 | |
| 
 | |
|     void registerWebSocketService(WebSocketService* service) {
 | |
|         this->ws = service;
 | |
|     }
 | |
| };
 | |
| 
 | |
| }
 | |
| 
 | |
| #endif // HV_WEBSOCKET_SERVER_H_
 | 
