cleanup / remove printf, add mutex, remove hardcoded values, can pass in a binding host
This commit is contained in:
@ -22,7 +22,9 @@ namespace ix
|
||||
|
||||
class WebSocketServer {
|
||||
public:
|
||||
WebSocketServer(int port = 8080, int backlog = 5);
|
||||
WebSocketServer(int port = 8080,
|
||||
const std::string& host = WebSocketServer::kDefaultHost,
|
||||
int backlog = 5);
|
||||
virtual ~WebSocketServer();
|
||||
|
||||
void setOnConnectionCallback(const OnConnectionCallback& callback);
|
||||
@ -30,13 +32,13 @@ namespace ix
|
||||
std::pair<bool, std::string> listen();
|
||||
void run();
|
||||
|
||||
// FIXME: need mutex
|
||||
std::set<std::shared_ptr<WebSocket>> getClients() { return _clients; }
|
||||
// Get all the connected clients
|
||||
std::set<std::shared_ptr<WebSocket>> getClients();
|
||||
|
||||
private:
|
||||
void handleConnection(int fd);
|
||||
|
||||
// Member variables
|
||||
int _port;
|
||||
std::string _host;
|
||||
int _backlog;
|
||||
|
||||
OnConnectionCallback _onConnectionCallback;
|
||||
@ -44,6 +46,18 @@ namespace ix
|
||||
// socket for accepting connections
|
||||
int _serverFd;
|
||||
|
||||
std::mutex _clientsMutex;
|
||||
std::set<std::shared_ptr<WebSocket>> _clients;
|
||||
|
||||
std::mutex _logMutex;
|
||||
|
||||
const static std::string kDefaultHost;
|
||||
|
||||
// Methods
|
||||
void handleConnection(int fd);
|
||||
|
||||
// Logging
|
||||
void logError(const std::string& str);
|
||||
void logInfo(const std::string& str);
|
||||
};
|
||||
}
|
||||
|
Reference in New Issue
Block a user