mirror of
https://github.com/socketio/socket.io-client-cpp.git
synced 2026-06-10 12:15:44 +00:00
Allow connect with query string.
This commit is contained in:
parent
0b0f265c39
commit
b06184bbbf
@ -60,7 +60,7 @@ namespace sio
|
|||||||
sync_close();
|
sync_close();
|
||||||
}
|
}
|
||||||
|
|
||||||
void client_impl::connect(const std::string& uri)
|
void client_impl::connect(const std::string& uri, const std::map<string,string>& query)
|
||||||
{
|
{
|
||||||
if(m_reconn_timer)
|
if(m_reconn_timer)
|
||||||
{
|
{
|
||||||
@ -86,8 +86,18 @@ namespace sio
|
|||||||
m_con_state = con_opening;
|
m_con_state = con_opening;
|
||||||
m_base_url = uri;
|
m_base_url = uri;
|
||||||
m_reconn_made = 0;
|
m_reconn_made = 0;
|
||||||
|
|
||||||
|
std::string queryString;
|
||||||
|
for(std::map<std::string,std::string>::const_iterator it=query.begin();it!=query.end();++it){
|
||||||
|
queryString.append("&");
|
||||||
|
queryString.append(it->first);
|
||||||
|
queryString.append("=");
|
||||||
|
queryString.append(it->second);
|
||||||
|
}
|
||||||
|
m_query_string=queryString;
|
||||||
|
|
||||||
this->reset_states();
|
this->reset_states();
|
||||||
m_client.get_io_service().dispatch(lib::bind(&client_impl::connect_impl,this,uri));
|
m_client.get_io_service().dispatch(lib::bind(&client_impl::connect_impl,this,uri,queryString));
|
||||||
m_network_thread.reset(new std::thread(lib::bind(&client_impl::run_loop,this)));//uri lifecycle?
|
m_network_thread.reset(new std::thread(lib::bind(&client_impl::run_loop,this)));//uri lifecycle?
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -182,17 +192,18 @@ namespace sio
|
|||||||
"run loop end");
|
"run loop end");
|
||||||
}
|
}
|
||||||
|
|
||||||
void client_impl::connect_impl(const std::string& uri)
|
void client_impl::connect_impl(const std::string& uri, const std::string& queryString)
|
||||||
{
|
{
|
||||||
do{
|
do{
|
||||||
websocketpp::uri uo(uri);
|
websocketpp::uri uo(uri);
|
||||||
std::ostringstream ss;
|
std::ostringstream ss;
|
||||||
|
|
||||||
if (m_sid.size()==0) {
|
if (m_sid.size()==0) {
|
||||||
ss<<"ws://"<<uo.get_host()<<":"<<uo.get_port()<<"/socket.io/?EIO=4&transport=websocket&t="<<time(NULL);
|
ss<<"ws://"<<uo.get_host()<<":"<<uo.get_port()<<"/socket.io/?EIO=4&transport=websocket&t="<<time(NULL)<<queryString;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ss<<"ws://"<<uo.get_host()<<":"<<uo.get_port()<<"/socket.io/?EIO=4&transport=websocket&sid="<<m_sid<<"&t="<<time(NULL);
|
ss<<"ws://"<<uo.get_host()<<":"<<uo.get_port()<<"/socket.io/?EIO=4&transport=websocket&sid="<<m_sid<<"&t="<<time(NULL)<<queryString;
|
||||||
}
|
}
|
||||||
lib::error_code ec;
|
lib::error_code ec;
|
||||||
client_type::connection_ptr con = m_client.get_connection(ss.str(), ec);
|
client_type::connection_ptr con = m_client.get_connection(ss.str(), ec);
|
||||||
@ -303,7 +314,7 @@ namespace sio
|
|||||||
this->reset_states();
|
this->reset_states();
|
||||||
LOG("Reconnecting..."<<std::endl);
|
LOG("Reconnecting..."<<std::endl);
|
||||||
if(m_reconnecting_listener) m_reconnecting_listener();
|
if(m_reconnecting_listener) m_reconnecting_listener();
|
||||||
m_client.get_io_service().dispatch(lib::bind(&client_impl::connect_impl,this,m_base_url));
|
m_client.get_io_service().dispatch(lib::bind(&client_impl::connect_impl,this,m_base_url,m_query_string));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -87,7 +87,7 @@ namespace sio
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Client Functions - such as send, etc.
|
// Client Functions - such as send, etc.
|
||||||
void connect(const std::string& uri);
|
void connect(const std::string& uri, const std::map<string, string>& queryString);
|
||||||
|
|
||||||
sio::socket::ptr const& socket(const std::string& nsp);
|
sio::socket::ptr const& socket(const std::string& nsp);
|
||||||
|
|
||||||
@ -120,7 +120,7 @@ namespace sio
|
|||||||
private:
|
private:
|
||||||
void run_loop();
|
void run_loop();
|
||||||
|
|
||||||
void connect_impl(const std::string& uri);
|
void connect_impl(const std::string& uri, const std::string& query);
|
||||||
|
|
||||||
void close_impl(close::status::value const& code,std::string const& reason);
|
void close_impl(close::status::value const& code,std::string const& reason);
|
||||||
|
|
||||||
@ -165,6 +165,7 @@ namespace sio
|
|||||||
// Socket.IO server settings
|
// Socket.IO server settings
|
||||||
std::string m_sid;
|
std::string m_sid;
|
||||||
std::string m_base_url;
|
std::string m_base_url;
|
||||||
|
std::string m_query_string;
|
||||||
|
|
||||||
unsigned int m_ping_interval;
|
unsigned int m_ping_interval;
|
||||||
unsigned int m_ping_timeout;
|
unsigned int m_ping_timeout;
|
||||||
|
|||||||
@ -67,10 +67,16 @@ namespace sio
|
|||||||
{
|
{
|
||||||
m_impl->clear_socket_listeners();
|
m_impl->clear_socket_listeners();
|
||||||
}
|
}
|
||||||
|
|
||||||
void client::connect(const std::string& uri)
|
void client::connect(const std::string& uri)
|
||||||
{
|
{
|
||||||
m_impl->connect(uri);
|
const std::map<string,string> query;
|
||||||
|
m_impl->connect(uri, query);
|
||||||
|
}
|
||||||
|
|
||||||
|
void client::connect(const std::string& uri, const std::map<string,string>& query)
|
||||||
|
{
|
||||||
|
m_impl->connect(uri, query);
|
||||||
}
|
}
|
||||||
|
|
||||||
socket::ptr const& client::socket(const std::string& nsp)
|
socket::ptr const& client::socket(const std::string& nsp)
|
||||||
|
|||||||
@ -56,6 +56,8 @@ namespace sio
|
|||||||
// Client Functions - such as send, etc.
|
// Client Functions - such as send, etc.
|
||||||
void connect(const std::string& uri);
|
void connect(const std::string& uri);
|
||||||
|
|
||||||
|
void connect(const std::string& uri, const std::map<string,string>& query);
|
||||||
|
|
||||||
void set_reconnect_attempts(int attempts);
|
void set_reconnect_attempts(int attempts);
|
||||||
|
|
||||||
void set_reconnect_delay(unsigned millis);
|
void set_reconnect_delay(unsigned millis);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user