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