@@ -5,7 +5,7 @@ use rust_engineio::{
5
5
asynchronous:: ClientBuilder as EngineIoClientBuilder ,
6
6
header:: { HeaderMap , HeaderValue } ,
7
7
} ;
8
- use std:: collections:: HashMap ;
8
+ use std:: { collections:: HashMap , sync :: Arc } ;
9
9
use url:: Url ;
10
10
11
11
use crate :: { error:: Result , Event , PacketSerializer , Payload , TransportType } ;
@@ -31,7 +31,7 @@ pub struct ClientBuilder {
31
31
tls_config : Option < TlsConnector > ,
32
32
opening_headers : Option < HeaderMap > ,
33
33
transport_type : TransportType ,
34
- packet_serializer : PacketSerializer ,
34
+ packet_serializer : Arc < PacketSerializer > ,
35
35
pub ( crate ) auth : Option < serde_json:: Value > ,
36
36
pub ( crate ) reconnect : bool ,
37
37
pub ( crate ) reconnect_on_disconnect : bool ,
@@ -91,7 +91,7 @@ impl ClientBuilder {
91
91
tls_config : None ,
92
92
opening_headers : None ,
93
93
transport_type : TransportType :: default ( ) ,
94
- packet_serializer : PacketSerializer :: default ( ) ,
94
+ packet_serializer : PacketSerializer :: default_arc ( ) ,
95
95
auth : None ,
96
96
reconnect : true ,
97
97
reconnect_on_disconnect : false ,
@@ -415,7 +415,7 @@ impl ClientBuilder {
415
415
/// }
416
416
/// ```
417
417
pub fn packet_serializer ( mut self , packet_serializer : PacketSerializer ) -> Self {
418
- self . packet_serializer = packet_serializer;
418
+ self . packet_serializer = Arc :: new ( packet_serializer) ;
419
419
420
420
self
421
421
}
@@ -462,7 +462,8 @@ impl ClientBuilder {
462
462
url. set_path ( "/socket.io/" ) ;
463
463
}
464
464
465
- let mut builder = EngineIoClientBuilder :: new ( url) ;
465
+ let mut builder =
466
+ EngineIoClientBuilder :: new ( url) . packet_serializer ( self . packet_serializer . clone ( ) ) ;
466
467
467
468
if let Some ( tls_config) = & self . tls_config {
468
469
builder = builder. tls_config ( tls_config. to_owned ( ) ) ;
0 commit comments