mirror of
https://github.com/servo/servo.git
synced 2025-06-29 11:33:39 +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::header::{self, HeaderMap, HeaderName, HeaderValue};
|
||||||
use http::uri::Authority;
|
use http::uri::Authority;
|
||||||
use ipc_channel::ipc::{IpcReceiver, IpcSender};
|
use ipc_channel::ipc::{IpcReceiver, IpcSender};
|
||||||
|
use ipc_channel::router::ROUTER;
|
||||||
use net_traits::request::{RequestBuilder, RequestMode};
|
use net_traits::request::{RequestBuilder, RequestMode};
|
||||||
use net_traits::{CookieSource, MessageData};
|
use net_traits::{CookieSource, MessageData};
|
||||||
use net_traits::{WebSocketDomAction, WebSocketNetworkEvent};
|
use net_traits::{WebSocketDomAction, WebSocketNetworkEvent};
|
||||||
|
@ -242,8 +243,10 @@ pub fn init(
|
||||||
let ws_sender = ws.broadcaster();
|
let ws_sender = ws.broadcaster();
|
||||||
let initiated_close = Arc::new(AtomicBool::new(false));
|
let initiated_close = Arc::new(AtomicBool::new(false));
|
||||||
|
|
||||||
thread::spawn(move || {
|
ROUTER.add_route(
|
||||||
while let Ok(dom_action) = dom_action_receiver.recv() {
|
dom_action_receiver.to_opaque(),
|
||||||
|
Box::new(move |message| {
|
||||||
|
let dom_action = message.to().expect("Ws dom_action message to deserialize");
|
||||||
match dom_action {
|
match dom_action {
|
||||||
WebSocketDomAction::SendMessage(MessageData::Text(data)) => {
|
WebSocketDomAction::SendMessage(MessageData::Text(data)) => {
|
||||||
ws_sender.send(Message::text(data)).unwrap();
|
ws_sender.send(Message::text(data)).unwrap();
|
||||||
|
@ -265,8 +268,8 @@ pub fn init(
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
}),
|
||||||
});
|
);
|
||||||
|
|
||||||
if let Err(e) = ws.run() {
|
if let Err(e) = ws.run() {
|
||||||
debug!("Failed to run WebSocket: {:?}", e);
|
debug!("Failed to run WebSocket: {:?}", e);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue