@@ -85,7 +85,7 @@ pub enum Error {
8585 #[ cfg( target_arch = "wasm32" ) ]
8686 #[ cfg_attr( docsrs, doc( cfg( target_arch = "wasm32" ) ) ) ]
8787 #[ error( "web_sys error" ) ]
88- WebSys ( #[ from] wasm:: WebSysError ) ,
88+ WebSys ( #[ from] wasm:: Error ) ,
8989
9090 /// Error during serialization/deserialization.
9191 #[ error( "serde_json error" ) ]
@@ -160,7 +160,7 @@ impl UpgradedRequestBuilder {
160160 let inner = native:: send_request ( self . inner ) . await ?;
161161
162162 #[ cfg( target_arch = "wasm32" ) ]
163- let inner = wasm:: WebSysWebSocketStream :: new ( self . inner . build ( ) ?, & self . protocols ) . await ?;
163+ let inner = wasm:: WebSocket :: new ( self . inner . build ( ) ?, & self . protocols ) . await ?;
164164
165165 Ok ( UpgradeResponse {
166166 inner,
@@ -178,7 +178,7 @@ pub struct UpgradeResponse {
178178 inner : native:: WebSocketResponse ,
179179
180180 #[ cfg( target_arch = "wasm32" ) ]
181- inner : wasm:: WebSysWebSocketStream ,
181+ inner : wasm:: WebSocket ,
182182
183183 #[ allow( dead_code) ]
184184 protocols : Vec < String > ,
@@ -202,7 +202,7 @@ impl UpgradeResponse {
202202
203203 #[ cfg( target_arch = "wasm32" ) ]
204204 let ( inner, protocol) = {
205- let protocol = self . inner . protocol ( ) ;
205+ let protocol = self . inner . protocol ( ) . to_owned ( ) ;
206206 ( self . inner , Some ( protocol) )
207207 } ;
208208
@@ -225,7 +225,7 @@ pub struct WebSocket {
225225 inner : native:: WebSocketStream ,
226226
227227 #[ cfg( target_arch = "wasm32" ) ]
228- inner : wasm:: WebSysWebSocketStream ,
228+ inner : wasm:: WebSocket ,
229229
230230 protocol : Option < String > ,
231231}
@@ -256,7 +256,15 @@ impl WebSocket {
256256 }
257257
258258 #[ cfg( target_arch = "wasm32" ) ]
259- self . inner . close ( code. into ( ) , reason. unwrap_or_default ( ) ) ?;
259+ {
260+ let mut inner = self . inner ;
261+ inner
262+ . send ( Message :: Close {
263+ code,
264+ reason : reason. unwrap_or_default ( ) . to_owned ( ) ,
265+ } )
266+ . await ?;
267+ }
260268
261269 Ok ( ( ) )
262270 }
@@ -319,6 +327,18 @@ pub mod tests {
319327
320328 use super :: { websocket, CloseCode , Message , RequestBuilderExt , WebSocket } ;
321329
330+ macro_rules! assert_send {
331+ ( $ty: ty) => {
332+ const _: ( ) = {
333+ struct Assert <T : Send >( std:: marker:: PhantomData <T >) ;
334+ Assert :: <$ty>( std:: marker:: PhantomData ) ;
335+ } ;
336+ } ;
337+ }
338+
339+ // unfortunately hyper IO is not sync
340+ assert_send ! ( WebSocket ) ;
341+
322342 async fn test_websocket ( mut websocket : WebSocket ) {
323343 let text = "Hello, World!" ;
324344 websocket
0 commit comments