/* * IXWebSocketServer.h * Author: Benjamin Sergeant * Copyright (c) 2018 Machine Zone, Inc. All rights reserved. */ #pragma once #include // pair #include #include #include #include #include "IXWebSocket.h" namespace ix { using OnConnectionCallback = std::function; class WebSocketServer { public: WebSocketServer(int port = 8080, int backlog = 5); virtual ~WebSocketServer(); void setOnConnectionCallback(const OnConnectionCallback& callback); std::pair listen(); void run(); private: void handleConnection(int fd); int _port; int _backlog; OnConnectionCallback _onConnectionCallback; // socket for accepting connections int _serverFd; // FIXME: we never reclaim space in this array ... std::vector _workers; }; }