@@ -159,6 +159,8 @@ namespace sio
159159 void emit (std::string const & name, message::list const & msglist, std::function<void (message::list const &)> const & ack);
160160
161161 std::string const & get_namespace () const {return m_nsp;}
162+
163+ std::string const & get_socket_id () const { return m_socket_id; }
162164
163165 protected:
164166 void on_connected ();
@@ -197,6 +199,8 @@ namespace sio
197199 bool m_connected;
198200 std::string m_nsp;
199201 message::ptr m_auth;
202+
203+ std::string m_socket_id;
200204
201205 std::map<unsigned int , std::function<void (message::list const &)> > m_acks;
202206
@@ -294,7 +298,7 @@ namespace sio
294298 void socket::impl::send_connect ()
295299 {
296300 NULL_GUARD (m_client);
297- packet p (packet::type_connect,m_nsp, m_auth);
301+ packet p (packet::type_connect, m_nsp, m_auth);
298302 m_client->send (p);
299303 m_connection_timer.reset (new asio::system_timer (m_client->get_io_service ()));
300304 lib::error_code ec;
@@ -307,7 +311,7 @@ namespace sio
307311 NULL_GUARD (m_client);
308312 if (m_connected)
309313 {
310- packet p (packet::type_disconnect,m_nsp);
314+ packet p (packet::type_disconnect, m_nsp);
311315 send_packet (p);
312316
313317 if (!m_connection_timer)
@@ -399,6 +403,13 @@ namespace sio
399403 {
400404 LOG (" Received Message type (Connect)" <<std::endl);
401405
406+ const object_message* obj_ptr = static_cast <const object_message*>(p.get_message ().get ());
407+ const map<string, message::ptr>* values = &(obj_ptr->get_map ());
408+ auto it = values->find (" sid" );
409+ if (it != values->end ()) {
410+ m_socket_id = static_pointer_cast<string_message>(it->second )->get_string ();
411+ }
412+
402413 this ->on_connected ();
403414 break ;
404415 }
@@ -603,12 +614,17 @@ namespace sio
603614 return m_impl->get_namespace ();
604615 }
605616
606- void socket::on_connected ()
607- {
617+ std::string const & socket::get_socket_id () const
618+ {
619+ return m_impl->get_socket_id ();
620+ }
621+
622+ void socket::on_connected ()
623+ {
608624 m_impl->on_connected ();
609- }
610-
611- void socket::on_close ()
625+ }
626+
627+ void socket::on_close ()
612628 {
613629 m_impl->on_close ();
614630 }
0 commit comments