Skip to content

Commit 725a8e0

Browse files
authored
Merge pull request #104 from a-tatarsky/master
client: support custom HTTP headers
2 parents 52e99b7 + cda7b20 commit 725a8e0

File tree

4 files changed

+21
-5
lines changed

4 files changed

+21
-5
lines changed

src/internal/sio_client_impl.cpp

+7-1
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ namespace sio
6363
sync_close();
6464
}
6565

66-
void client_impl::connect(const string& uri, const map<string,string>& query)
66+
void client_impl::connect(const string& uri, const map<string,string>& query, const map<string, string>& headers)
6767
{
6868
if(m_reconn_timer)
6969
{
@@ -99,6 +99,8 @@ namespace sio
9999
}
100100
m_query_string=move(query_str);
101101

102+
m_http_headers = headers;
103+
102104
this->reset_states();
103105
m_client.get_io_service().dispatch(lib::bind(&client_impl::connect_impl,this,uri,m_query_string));
104106
m_network_thread.reset(new thread(lib::bind(&client_impl::run_loop,this)));//uri lifecycle?
@@ -225,6 +227,10 @@ namespace sio
225227
break;
226228
}
227229

230+
for( auto&& header: m_http_headers ) {
231+
con->replace_header(header.first, header.second);
232+
}
233+
228234
m_client.connect(con);
229235
return;
230236
}

src/internal/sio_client_impl.h

+3-1
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,8 @@ namespace sio
9797
}
9898

9999
// Client Functions - such as send, etc.
100-
void connect(const std::string& uri, const std::map<std::string, std::string>& queryString);
100+
void connect(const std::string& uri, const std::map<std::string, std::string>& queryString,
101+
const std::map<std::string, std::string>& httpExtraHeaders);
101102

102103
sio::socket::ptr const& socket(const std::string& nsp);
103104

@@ -182,6 +183,7 @@ namespace sio
182183
std::string m_sid;
183184
std::string m_base_url;
184185
std::string m_query_string;
186+
std::map<std::string, std::string> m_http_headers;
185187

186188
unsigned int m_ping_interval;
187189
unsigned int m_ping_timeout;

src/sio_client.cpp

100755100644
+8-3
Original file line numberDiff line numberDiff line change
@@ -70,13 +70,18 @@ namespace sio
7070

7171
void client::connect(const std::string& uri)
7272
{
73-
const std::map<string,string> query;
74-
m_impl->connect(uri, query);
73+
m_impl->connect(uri, {}, {});
7574
}
7675

7776
void client::connect(const std::string& uri, const std::map<string,string>& query)
7877
{
79-
m_impl->connect(uri, query);
78+
m_impl->connect(uri, query, {});
79+
}
80+
81+
void client::connect(const std::string& uri, const std::map<std::string,std::string>& query,
82+
const std::map<std::string,std::string>& http_extra_headers)
83+
{
84+
m_impl->connect(uri, query, http_extra_headers);
8085
}
8186

8287
socket::ptr const& client::socket(const std::string& nsp)

src/sio_client.h

100755100644
+3
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,9 @@ namespace sio
5858

5959
void connect(const std::string& uri, const std::map<std::string,std::string>& query);
6060

61+
void connect(const std::string& uri, const std::map<std::string,std::string>& query,
62+
const std::map<std::string,std::string>& http_extra_headers);
63+
6164
void set_reconnect_attempts(int attempts);
6265

6366
void set_reconnect_delay(unsigned millis);

0 commit comments

Comments
 (0)