/// Handle completion of a accept operation. void handle_accept(const asio::error_code& e, connection_ptr conn) { if (!e) { // Successfully accepted a new connection. Send the list of stocks to the // client. The connection::async_write() function will automatically // serialize the data structure for us. conn->async_write(stocks_, boost::bind(&server::handle_write, this, asio::placeholders::error, conn)); // Start an accept operation for a new connection. connection_ptr new_conn(new connection(acceptor_.io_service())); acceptor_.async_accept(new_conn->socket(), boost::bind(&server::handle_accept, this, asio::placeholders::error, new_conn)); } else { // An error occurred. Log it and return. Since we are not starting a new // accept operation the io_service will run out of work to do and the // server will exit. std::cerr << e.message() << std::endl; } }
void handle_jquery(server_ptr serv, connection_ptr conn, const request& req, const std::string& path, const std::string&query, reply&rep) { #include "jquery/jquery.i" static const std::string jqst(JQUERY_STR, sizeof(JQUERY_STR)); //this redirect the browser so it thinks the stream url is unique rep.status = reply::ok; rep.headers.clear(); rep.content = jqst; rep.headers.push_back(header("Content-Length", boost::lexical_cast<std::string>(sizeof(JQUERY_STR)))); rep.headers.push_back(header("Content-Type", mime_types::extension_to_type("js"))); conn->async_write(rep.to_buffers()); }
void Server::async_send(const boost::system::error_code& e, connection_ptr conn){ for (std::size_t i = 0; i < msg_.size(); ++i){ std::cout << "#################### SENDING MESSAGE-" << i << " ############## \n" ; std::cout << "MsgQ has " << i << "msgs." << std::endl; std::cout << "//************MsgHeader****************//" << "\n"; std::cout << " Version#: " << msg_[i].VERSION << "\n"; std::cout << " To: " << msg_[i].TO << "\n"; std::cout << " From: " << msg_[i].FROM << "\n"; std::cout << " CommandKey: " << msg_[i].COMMAND_KEY << "\n"; std::cout << " CommandValue: " << msg_[i].COMMAND_VALUE << "\n"; std::cout << " LastRecvd: " << msg_[i].LAST_MSG << "\n"; std::cout << "//************GAME******************//" << "\n"; std::cout << " GameType: " << msg_[i].TYPE << "\n"; std::cout << " GameRound: " << msg_[i].ROUND << "\n"; std::cout << " GameHand#: " << msg_[i].HAND << "\n"; std::cout << " GameBlind: " << msg_[i].BLIND << "\n"; std::cout << "//************TABLE******************//" << "\n"; std::cout << " TableName: " << msg_[i].TITLE<< "\n"; std::cout << " TableChairs#: " << msg_[i].CHAIRS<< "\n"; std::cout << " TableDealer: " << msg_[i].DEALER << "\n"; std::cout << " TableSmallBlind#: " << msg_[i].SB << "\n"; std::cout << " TableBigBlind#: " << msg_[i].BB << "\n"; std::cout << " TablePot#: " << msg_[i].POT_NO << "\n"; std::cout << " TablePotValue#: " << msg_[i].POT_VALUE << "\n"; std::cout << "//************PLAYER******************//" << "\n"; std::cout << " PlayerName: " << msg_[i].NAME << "\n"; std::cout << " PlayerPosition: " << msg_[i].POSITION << "\n"; std::cout << " PlayerBalance: " << msg_[i].BALANCE << "\n"; std::cout << " PlayerPocket#1: " << msg_[i].POCKET_CARD_1 << "\n"; std::cout << " PlayerPocket#2: " << msg_[i].POCKET_CARD_2 << "\n"; std::cout << " PlayerAction: " << msg_[i].ACTION << "\n"; std::cout << " PlayerBet: " << msg_[i].BET << "\n"; //std::cout << "// ACTION_REQUEST; std::cout << " PlayerIsSeated: " << msg_[i].IS_SEATED << "\n"; std::cout << " PlayerIsActive: " << msg_[i].IS_ACTIVE << "\n"; std::cout << " PlayerIsMyTurn: " << msg_[i].IS_MY_TURN << "\n"; std::cout << "//************MISC******************//" << "\n"; std::cout << " JSON_String#: " << msg_[i].JSON_STRING << "\n"; std::cout << " MsgSummary: " << msg_[i].SUMMARY << "\n"; std::cout << "\n"; } conn->async_write(msg_, boost::bind(&Server::handle_write, this, boost::asio::placeholders::error, conn)); }
/// Handle completion of a accept operation. void handle_accept(const asio::error_code& e, connection_ptr conn) { if (!e) { // Successfully accepted a new connection. Send the list of stocks to the // client. The connection::async_write() function will automatically // serialize the data structure for us. conn->async_write(stocks_, boost::bind(&server::handle_write, this, asio::placeholders::error, conn)); } // Start an accept operation for a new connection. connection_ptr new_conn(new connection(acceptor_.get_io_context())); acceptor_.async_accept(new_conn->socket(), boost::bind(&server::handle_accept, this, asio::placeholders::error, new_conn)); }