diff --git a/server/wsproxy/master.cc b/server/wsproxy/master.cc index 8aba649..b2764d1 100644 --- a/server/wsproxy/master.cc +++ b/server/wsproxy/master.cc @@ -16,6 +16,7 @@ #include "master.h" #include "app.h" +#include "iomgr.h" const int PACK_MAX = 1024 * 64; @@ -29,7 +30,11 @@ void Master::Init(int instance_id, const std::string& remote_ip, int remote_port last_pong_tick = a8::XGetTickCount(); recv_buff_ = (char*) malloc(PACK_MAX * 2); #ifdef USE_ASIO - tcp_client_ = std::make_shared(remote_ip, remote_port); + auto io_context = IoMgr::Instance()->GetIoContext(IC_Master); + if (!io_context) { + abort(); + } + tcp_client_ = std::make_shared(*io_context, remote_ip, remote_port); #else tcp_client_ = std::make_shared(remote_ip, remote_port); #endif diff --git a/server/wsproxy/upstream.cc b/server/wsproxy/upstream.cc index 8c67cb8..74108f5 100644 --- a/server/wsproxy/upstream.cc +++ b/server/wsproxy/upstream.cc @@ -17,6 +17,7 @@ #include "upstream.h" #include "app.h" +#include "iomgr.h" const int PACK_MAX = 1024 * 64 * 2; @@ -33,7 +34,11 @@ void UpStream::Init(int instance_id, const std::string& remote_ip, int remote_po last_pong_tick = a8::XGetTickCount(); recv_buff_ = (char*) malloc(PACK_MAX * 2); #ifdef USE_ASIO - tcp_client_ = std::make_shared(remote_ip, remote_port); + auto io_context = IoMgr::Instance()->GetIoContext(IC_Master); + if (!io_context) { + abort(); + } + tcp_client_ = std::make_shared(*io_context, remote_ip, remote_port); #else tcp_client_ = std::make_shared(remote_ip, remote_port); #endif