mirror of
https://github.com/servo/servo.git
synced 2025-06-29 03:23:41 +01:00
use ipc router to handle ws dom-action messages
This commit is contained in:
parent
ec408e9a57
commit
c1573cc4fc
1 changed files with 7 additions and 4 deletions
|
@ -12,6 +12,7 @@ use headers::Host;
|
|||
use http::header::{self, HeaderMap, HeaderName, HeaderValue};
|
||||
use http::uri::Authority;
|
||||
use ipc_channel::ipc::{IpcReceiver, IpcSender};
|
||||
use ipc_channel::router::ROUTER;
|
||||
use net_traits::request::{RequestBuilder, RequestMode};
|
||||
use net_traits::{CookieSource, MessageData};
|
||||
use net_traits::{WebSocketDomAction, WebSocketNetworkEvent};
|
||||
|
@ -242,8 +243,10 @@ pub fn init(
|
|||
let ws_sender = ws.broadcaster();
|
||||
let initiated_close = Arc::new(AtomicBool::new(false));
|
||||
|
||||
thread::spawn(move || {
|
||||
while let Ok(dom_action) = dom_action_receiver.recv() {
|
||||
ROUTER.add_route(
|
||||
dom_action_receiver.to_opaque(),
|
||||
Box::new(move |message| {
|
||||
let dom_action = message.to().expect("Ws dom_action message to deserialize");
|
||||
match dom_action {
|
||||
WebSocketDomAction::SendMessage(MessageData::Text(data)) => {
|
||||
ws_sender.send(Message::text(data)).unwrap();
|
||||
|
@ -265,8 +268,8 @@ pub fn init(
|
|||
}
|
||||
},
|
||||
}
|
||||
}
|
||||
});
|
||||
}),
|
||||
);
|
||||
|
||||
if let Err(e) = ws.run() {
|
||||
debug!("Failed to run WebSocket: {:?}", e);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue