@@ -9,7 +9,7 @@ use std::{
99 time:: Duration ,
1010} ;
1111
12- use engineioxide:: { sid:: Sid , socket:: DisconnectReason as EIoDisconnectReason } ;
12+ use engineioxide:: { sid:: Sid , socket:: DisconnectReason as EIoDisconnectReason , ProtocolVersion } ;
1313use futures:: { future:: BoxFuture , Future } ;
1414use serde:: { de:: DeserializeOwned , Serialize } ;
1515use serde_json:: Value ;
@@ -110,18 +110,22 @@ pub struct Socket<A: Adapter> {
110110
111111impl < A : Adapter > Socket < A > {
112112 pub ( crate ) fn new (
113- sid : Sid ,
114113 ns : Arc < Namespace < A > > ,
115114 esocket : Arc < engineioxide:: Socket < SocketData > > ,
116115 config : Arc < SocketIoConfig > ,
117116 ) -> Self {
117+ let id = if esocket. protocol == ProtocolVersion :: V3 {
118+ esocket. id
119+ } else {
120+ Sid :: new ( )
121+ } ;
118122 Self {
119123 ns,
120124 message_handlers : RwLock :: new ( HashMap :: new ( ) ) ,
121125 disconnect_handler : Mutex :: new ( None ) ,
122126 ack_message : Mutex :: new ( HashMap :: new ( ) ) ,
123127 ack_counter : AtomicI64 :: new ( 0 ) ,
124- id : sid ,
128+ id,
125129 extensions : Extensions :: new ( ) ,
126130 config,
127131 esocket,
@@ -583,11 +587,16 @@ impl<A: Adapter> Debug for Socket<A> {
583587impl < A : Adapter > Socket < A > {
584588 pub fn new_dummy ( sid : Sid , ns : Arc < Namespace < A > > ) -> Socket < A > {
585589 let close_fn = Box :: new ( move |_, _| ( ) ) ;
586- Socket :: new (
587- sid,
590+ Socket {
591+ id : sid,
588592 ns,
589- engineioxide:: Socket :: new_dummy ( sid, close_fn) . into ( ) ,
590- Arc :: new ( SocketIoConfig :: default ( ) ) ,
591- )
593+ ack_counter : AtomicI64 :: new ( 0 ) ,
594+ ack_message : Mutex :: new ( HashMap :: new ( ) ) ,
595+ message_handlers : RwLock :: new ( HashMap :: new ( ) ) ,
596+ disconnect_handler : Mutex :: new ( None ) ,
597+ config : Arc :: new ( SocketIoConfig :: default ( ) ) ,
598+ extensions : Extensions :: new ( ) ,
599+ esocket : engineioxide:: Socket :: new_dummy ( close_fn) . into ( ) ,
600+ }
592601 }
593602}
0 commit comments