From 9d51669fb8efc74ede6c5cdebde175fb8bc39ed6 Mon Sep 17 00:00:00 2001 From: Peter Thorson Date: Fri, 1 Nov 2013 09:09:21 -0500 Subject: [PATCH] adds port and num_threads command line parameters --- examples/testee_server/testee_server.cpp | 35 ++++++++++++++++-------- 1 file changed, 24 insertions(+), 11 deletions(-) diff --git a/examples/testee_server/testee_server.cpp b/examples/testee_server/testee_server.cpp index 56e5108..90fddcb 100644 --- a/examples/testee_server/testee_server.cpp +++ b/examples/testee_server/testee_server.cpp @@ -110,10 +110,18 @@ void on_message(server* s, websocketpp::connection_hdl hdl, message_ptr msg) { s->send(hdl, msg->get_payload(), msg->get_opcode()); } -int main() { +int main(int argc, char * argv[]) { // Create a server endpoint server testee_server; + short port = 9002; + size_t num_threads = 1; + + if (argc == 3) { + port = atoi(argv[1]); + num_threads = atoi(argv[2]); + } + try { // Total silence //testee_server.clear_access_channels(websocketpp::log::alevel::all); @@ -124,24 +132,29 @@ int main() { // Register our message handler testee_server.set_message_handler(bind(&on_message,&testee_server,::_1,::_2)); - testee_server.set_tls_init_handler(bind(&on_tls_init,::_1)); + //testee_server.set_tls_init_handler(bind(&on_tls_init,::_1)); - // Listen on port 9002 - testee_server.listen(9002); + // Listen on port + testee_server.listen(port); // Start the server accept loop testee_server.start_accept(); // Start the ASIO io_service run loop - testee_server.run(); - - /*websocketpp::lib::thread t1(&server::run, &testee_server); - websocketpp::lib::thread t2(&server::run, &testee_server); - - t1.join(); - t2.join();*/ + if (num_threads == 1) { + testee_server.run(); + } else { + typedef websocketpp::lib::shared_ptr thread_ptr; + std::vector ts; + for (size_t i = 0; i < num_threads; i++) { + ts.push_back(thread_ptr(new websocketpp::lib::thread(&server::run, &testee_server))); + } + for (size_t i = 0; i < num_threads; i++) { + ts[i]->join(); + } + } } catch (const std::exception & e) { std::cout << "exception: " << e.what() << std::endl; } catch (websocketpp::lib::error_code e) {