28 inline static std::shared_mutex _rw_lock;
29 inline static sockpp::tcp_acceptor _acc;
31 inline static std::unordered_map<std::string, std::string> _player_id_to_address;
32 inline static std::unordered_map<std::string, sockpp::tcp_socket> _address_to_socket;
34 void connect(
const std::string& url,
const uint16_t port);
36 static void listener_loop();
37 static void read_message(sockpp::tcp_socket socket,
38 const std::function<
void(
const std::string&,
const sockpp::tcp_socket::addr_t&)>& message_handler);
39 static void handle_incoming_message(
const std::string& msg,
const sockpp::tcp_socket::addr_t& peer_address);
40 static ssize_t send_message(
const std::string& msg,
const std::string& address);
46 static void broadcast_message(
server_response& msg,
const std::vector<player*>& players,
const player* exclude);
48 static void on_player_left(std::string player_id);