From 01516318d6157643216891d7ee49b5b86c17c3e6 Mon Sep 17 00:00:00 2001 From: Peter Thorson Date: Tue, 17 Jan 2012 09:43:00 -0600 Subject: [PATCH] updates basic examples to use new convenience typedefs --- .gitignore | 2 + examples/echo_client/echo_client.cpp | 42 +++++++--------- examples/echo_server/echo_server.cpp | 22 ++++---- examples/echo_server_tls/echo_server_tls.cpp | 53 +++++++++++--------- 4 files changed, 56 insertions(+), 63 deletions(-) diff --git a/.gitignore b/.gitignore index 6959e73bca..f426bc3184 100644 --- a/.gitignore +++ b/.gitignore @@ -36,3 +36,5 @@ examples/stress_client/stress_client examples/broadcast_server_tls/broadcast_server test/basic/perf + +examples/echo_server_tls/echo_server_tls diff --git a/examples/echo_client/echo_client.cpp b/examples/echo_client/echo_client.cpp index 84f5ecf978..70df86cf50 100644 --- a/examples/echo_client/echo_client.cpp +++ b/examples/echo_client/echo_client.cpp @@ -25,34 +25,25 @@ * */ -#include "../../src/endpoint.hpp" #include "../../src/roles/client.hpp" +#include "../../src/websocketpp.hpp" #include -typedef websocketpp::endpoint plain_endpoint_type; -typedef plain_endpoint_type::handler_ptr plain_handler_ptr; -typedef plain_endpoint_type::connection_ptr connection_ptr; +using websocketpp::client; -class echo_client_handler : public plain_endpoint_type::handler { +class echo_client_handler : public client::handler { public: - typedef echo_client_handler type; - typedef plain_endpoint_type::connection_ptr connection_ptr; - - void on_message(connection_ptr connection,websocketpp::message::data::ptr msg) { - if (connection->get_resource() == "/getCaseCount") { + void on_message(connection_ptr con, message_ptr msg) { + if (con->get_resource() == "/getCaseCount") { std::cout << "Detected " << msg->get_payload() << " test cases." << std::endl; m_case_count = atoi(msg->get_payload().c_str()); } else { - connection->send(msg->get_payload(),msg->get_opcode()); + con->send(msg->get_payload(),msg->get_opcode()); } } - void http(connection_ptr connection) { - //connection->set_body("HTTP Response!!"); - } - - void on_fail(connection_ptr connection) { + void on_fail(connection_ptr con) { std::cout << "connection failed" << std::endl; } @@ -63,23 +54,24 @@ public: int main(int argc, char* argv[]) { std::string uri = "ws://localhost:9001/"; - if (argc > 2) { - std::cout << "Usage: `echo_client test_url`" << std::endl; - } else { + if (argc == 2) { uri = argv[1]; + + } else if (argc > 2) { + std::cout << "Usage: `echo_client test_url`" << std::endl; } try { - plain_handler_ptr handler(new echo_client_handler()); - connection_ptr connection; - plain_endpoint_type endpoint(handler); + client::handler::ptr handler(new echo_client_handler()); + client::connection_ptr con; + client endpoint(handler); endpoint.alog().unset_level(websocketpp::log::alevel::ALL); endpoint.elog().unset_level(websocketpp::log::elevel::ALL); - connection = endpoint.connect(uri+"getCaseCount"); + con = endpoint.connect(uri+"getCaseCount"); - connection->add_request_header("User Agent","WebSocket++/0.2.0"); + con->add_request_header("User Agent","WebSocket++/0.2.0"); endpoint.run(); @@ -92,7 +84,7 @@ int main(int argc, char* argv[]) { url << uri << "/runCase?case=" << i << "&agent=\"WebSocket++/0.2.0\""; - connection = endpoint.connect(url.str()); + con = endpoint.connect(url.str()); endpoint.run(); } diff --git a/examples/echo_server/echo_server.cpp b/examples/echo_server/echo_server.cpp index 4da19ce3c3..aef1e0c998 100644 --- a/examples/echo_server/echo_server.cpp +++ b/examples/echo_server/echo_server.cpp @@ -25,19 +25,15 @@ * */ -#include "../../src/endpoint.hpp" -#include "../../src/roles/server.hpp" +#include "../../src/websocketpp.hpp" #include -typedef websocketpp::endpoint endpoint_type; -typedef endpoint_type::handler_ptr handler_ptr; +using websocketpp::server; -class echo_server_handler : public endpoint_type::handler { +class echo_server_handler : public server::handler { public: - typedef endpoint_type::connection_ptr connection_ptr; - - void on_message(connection_ptr connection,websocketpp::message::data_ptr msg) { + void on_message(connection_ptr connection,message_ptr msg) { connection->send(msg->get_payload(),msg->get_opcode()); } }; @@ -55,14 +51,14 @@ int main(int argc, char* argv[]) { } try { - handler_ptr h(new echo_server_handler()); - endpoint_type e(h); + server::handler::ptr h(new echo_server_handler()); + server echo_endpoint(h); - e.alog().unset_level(websocketpp::log::alevel::ALL); - e.elog().unset_level(websocketpp::log::elevel::ALL); + echo_endpoint.alog().unset_level(websocketpp::log::alevel::ALL); + echo_endpoint.elog().unset_level(websocketpp::log::elevel::ALL); std::cout << "Starting WebSocket echo server on port " << port << std::endl; - e.listen(port); + echo_endpoint.listen(port); } catch (std::exception& e) { std::cerr << "Exception: " << e.what() << std::endl; } diff --git a/examples/echo_server_tls/echo_server_tls.cpp b/examples/echo_server_tls/echo_server_tls.cpp index 0001d643a3..b08575c261 100644 --- a/examples/echo_server_tls/echo_server_tls.cpp +++ b/examples/echo_server_tls/echo_server_tls.cpp @@ -25,22 +25,25 @@ * */ -#include "../../src/endpoint.hpp" -#include "../../src/roles/server.hpp" -#include "../../src/sockets/ssl.hpp" +#include "../../src/sockets/tls.hpp" +#include "../../src/websocketpp.hpp" #include -typedef websocketpp::endpoint plain_endpoint_type; -typedef websocketpp::endpoint tls_endpoint_type; -typedef plain_endpoint_type::handler_ptr plain_handler_ptr; -typedef tls_endpoint_type::handler_ptr tls_handler_ptr; +//typedef websocketpp::endpoint plain_endpoint_type; +//typedef websocketpp::endpoint tls_endpoint_type; +//typedef plain_endpoint_type::handler_ptr plain_handler_ptr; +//typedef tls_endpoint_type::handler_ptr tls_handler_ptr; + +using websocketpp::server; +using websocketpp::server_tls; template class echo_server_handler : public endpoint_type::handler { public: typedef echo_server_handler type; - typedef typename endpoint_type::connection_ptr connection_ptr; + typedef typename endpoint_type::handler::connection_ptr connection_ptr; + typedef typename endpoint_type::handler::message_ptr message_ptr; std::string get_password() const { return "test"; @@ -54,21 +57,21 @@ public: boost::asio::ssl::context::no_sslv2 | boost::asio::ssl::context::single_dh_use); context->set_password_callback(boost::bind(&type::get_password, this)); - context->use_certificate_chain_file("/Users/zaphoyd/Documents/ZS/websocketpp/src/ssl/server.pem"); - context->use_private_key_file("/Users/zaphoyd/Documents/ZS/websocketpp/src/ssl/server.pem", boost::asio::ssl::context::pem); - context->use_tmp_dh_file("/Users/zaphoyd/Documents/ZS/websocketpp/src/ssl/dh512.pem"); + context->use_certificate_chain_file("../../src/ssl/server.pem"); + context->use_private_key_file("../../src/ssl/server.pem", boost::asio::ssl::context::pem); + context->use_tmp_dh_file("../../src/ssl/dh512.pem"); } catch (std::exception& e) { std::cout << e.what() << std::endl; } return context; } - void on_message(connection_ptr connection,websocketpp::message::data_ptr msg) { - connection->send(msg->get_payload(),msg->get_opcode()); + void on_message(connection_ptr con,message_ptr msg) { + con->send(msg->get_payload(),msg->get_opcode()); } - void http(connection_ptr connection) { - connection->set_body("HTTP Response!!"); + void http(connection_ptr con) { + con->set_body("WebSocket++ TLS certificate test

WebSocket++ TLS certificate test

This is an HTTP(S) page served by a WebSocket++ server for the purposes of confirming that certificates are working since browsers normally silently ignore certificate issues.

"); } }; @@ -91,25 +94,25 @@ int main(int argc, char* argv[]) { try { if (tls) { - tls_handler_ptr h(new echo_server_handler()); - tls_endpoint_type e(h); + server_tls::handler::ptr handler(new echo_server_handler()); + server_tls endpoint(handler); - e.alog().unset_level(websocketpp::log::alevel::ALL); - e.elog().unset_level(websocketpp::log::elevel::ALL); + endpoint.alog().unset_level(websocketpp::log::alevel::ALL); + endpoint.elog().unset_level(websocketpp::log::elevel::ALL); std::cout << "Starting Secure WebSocket echo server on port " << port << std::endl; - e.listen(port); + endpoint.listen(port); } else { - plain_handler_ptr h(new echo_server_handler()); - plain_endpoint_type e(h); + server::handler::ptr handler(new echo_server_handler()); + server endpoint(handler); - e.alog().unset_level(websocketpp::log::alevel::ALL); - e.elog().unset_level(websocketpp::log::elevel::ALL); + endpoint.alog().unset_level(websocketpp::log::alevel::ALL); + endpoint.elog().unset_level(websocketpp::log::elevel::ALL); std::cout << "Starting WebSocket echo server on port " << port << std::endl; - e.listen(port); + endpoint.listen(port); }