add variable port and thread count to testee server

This commit is contained in:
Peter Thorson
2013-11-02 17:59:55 -05:00
parent 5e803b57f7
commit 6f79894ea5

View File

@@ -39,6 +39,7 @@ struct testee_config : public websocketpp::config::asio {
typedef core::message_type message_type;
typedef core::con_msg_manager_type con_msg_manager_type;
typedef core::endpoint_msg_manager_type endpoint_msg_manager_type;
typedef core::alog_type alog_type;
typedef core::elog_type elog_type;
typedef core::rng_type rng_type;
@@ -80,10 +81,18 @@ void on_message(server* s, websocketpp::connection_hdl hdl, message_ptr msg) {
}
int main() {
// Create a server endpoint
// Create a server endpoint
server testee_server;
try {
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);
testee_server.clear_error_channels(websocketpp::log::alevel::all);
@@ -94,20 +103,26 @@ int main() {
// Register our message handler
testee_server.set_message_handler(bind(&on_message,&testee_server,::_1,::_2));
// Listen on port 9002
testee_server.listen(9002);
// Listen on port port
testee_server.listen(port);
// Start the server accept loop
testee_server.start_accept();
// Start the ASIO io_service run loop
testee_server.run();
// Start the ASIO io_service run loop
if (num_threads == 1) {
testee_server.run();
} else {
typedef websocketpp::lib::shared_ptr<websocketpp::lib::thread> thread_ptr;
std::vector<thread_ptr> ts;
for (size_t i = 0; i < num_threads; i++) {
ts.push_back(thread_ptr(new websocketpp::lib::thread(&server::run, &testee_server)));
}
/*websocketpp::lib::thread t1(&server::run, &testee_server);
websocketpp::lib::thread t2(&server::run, &testee_server);
t1.join();
t2.join();*/
for (size_t i = 0; i < num_threads; i++) {
ts[i]->join();
}
}
} catch (const std::exception & e) {
std::cout << "exception: " << e.what() << std::endl;