mirror of
https://github.com/EvernodeXRPL/hpcore.git
synced 2026-04-29 15:37:59 +00:00
Fixed issue in node client closing the connection (#16)
* Fixed timeout issue of client * Fixed issue in node client * Removed unused files
This commit is contained in:
@@ -104,7 +104,6 @@ int main(int argc, char **argv)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
cout << "exited normally\n";
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@ namespace sock
|
||||
{
|
||||
|
||||
socket_client::socket_client(net::io_context &ioc, socket_session_handler &session_handler)
|
||||
: resolver_(net::make_strand(ioc)), ws_(net::make_strand(ioc)), socket_(ioc), sess_handler_(session_handler)
|
||||
: resolver_(net::make_strand(ioc)), ws_(net::make_strand(ioc)), sess_handler_(session_handler)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@ void socket_client::run(char const *host, char const *port)
|
||||
{
|
||||
host_ = host;
|
||||
port_ = (unsigned short)std::strtoul(port, NULL, 0);
|
||||
|
||||
|
||||
// Look up the domain name
|
||||
resolver_.async_resolve(
|
||||
host,
|
||||
@@ -63,7 +63,7 @@ void socket_client::on_connect(error ec, tcp::resolver::results_type::endpoint_t
|
||||
void socket_client::on_handshake(error ec)
|
||||
{
|
||||
std::make_shared<socket_session>(
|
||||
std::move(socket_), sess_handler_)
|
||||
ws_, sess_handler_)
|
||||
->client_run(port_, host_, ec);
|
||||
}
|
||||
|
||||
|
||||
@@ -24,7 +24,6 @@ namespace sock
|
||||
class socket_client : public std::enable_shared_from_this<socket_client>
|
||||
{
|
||||
tcp::resolver resolver_;
|
||||
tcp::socket socket_;
|
||||
websocket::stream<beast::tcp_stream> ws_;
|
||||
std::string host_;
|
||||
unsigned short port_;
|
||||
@@ -40,6 +39,8 @@ class socket_client : public std::enable_shared_from_this<socket_client>
|
||||
|
||||
void socket_client_fail(beast::error_code ec, char const *what);
|
||||
|
||||
void on_write(error ec, std::size_t);
|
||||
|
||||
public:
|
||||
// Resolver and socket require an io_context
|
||||
socket_client(net::io_context &ioc, socket_session_handler &session_handler);
|
||||
|
||||
@@ -15,7 +15,7 @@ namespace sock
|
||||
{
|
||||
|
||||
socket_server::socket_server(net::io_context &ioc, tcp::endpoint endpoint, socket_session_handler &session_handler)
|
||||
: acceptor_(ioc), socket_(ioc), sess_handler_(session_handler)
|
||||
: acceptor_(ioc), socket_(ioc),sess_handler_(session_handler)
|
||||
{
|
||||
error_code ec;
|
||||
|
||||
@@ -83,10 +83,11 @@ void socket_server::on_accept(error_code ec)
|
||||
{
|
||||
unsigned short port = socket_.remote_endpoint().port();
|
||||
std::string address = socket_.remote_endpoint().address().to_string();
|
||||
websocket::stream<beast::tcp_stream> ws(std::move(socket_));
|
||||
|
||||
// Launch a new session for this connection
|
||||
// Launch a new session for this connection
|
||||
std::make_shared<socket_session>(
|
||||
std::move(socket_), sess_handler_)
|
||||
ws, sess_handler_)
|
||||
->server_run(port, address);
|
||||
}
|
||||
|
||||
|
||||
@@ -11,8 +11,8 @@ using error_code = boost::system::error_code;
|
||||
namespace sock
|
||||
{
|
||||
|
||||
socket_session::socket_session(tcp::socket socket, socket_session_handler &sess_handler)
|
||||
: ws_(std::move(socket)), sess_handler_(sess_handler)
|
||||
socket_session::socket_session(websocket::stream<beast::tcp_stream> &websocket, socket_session_handler &sess_handler)
|
||||
: ws_(std::move(websocket)), sess_handler_(sess_handler)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@ class socket_session_handler;
|
||||
class socket_session : public std::enable_shared_from_this<socket_session>
|
||||
{
|
||||
beast::flat_buffer buffer_;
|
||||
websocket::stream<tcp::socket> ws_;
|
||||
websocket::stream<beast::tcp_stream> ws_;
|
||||
std::vector<std::shared_ptr<std::string const>> queue_;
|
||||
socket_session_handler &sess_handler_;
|
||||
|
||||
@@ -40,7 +40,7 @@ class socket_session : public std::enable_shared_from_this<socket_session>
|
||||
void on_write(error ec, std::size_t bytes_transferred);
|
||||
|
||||
public:
|
||||
socket_session(tcp::socket socket, socket_session_handler &sess_handler);
|
||||
socket_session(websocket::stream<beast::tcp_stream> &websocket, socket_session_handler &sess_handler);
|
||||
|
||||
unsigned short port_;
|
||||
std::string address_;
|
||||
|
||||
Reference in New Issue
Block a user