| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- #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_
|