This commit is contained in:
Hartmut Seichter 2022-12-12 03:12:56 +01:00
parent df1f5e99ec
commit 9114729c96

View file

@ -18,6 +18,8 @@ use vrpn::{
#[derive(Component)] #[derive(Component)]
pub struct Tracker { pub struct Tracker {
endpoint: EndpointSyncTcp,
dispatcher: TypeDispatcher
// stream: ConnectionIpStream, // stream: ConnectionIpStream,
// connection: Arc<ConnectionIp> // connection: Arc<ConnectionIp>
} }
@ -34,7 +36,7 @@ impl TypedHandler for TrackerHandler {
} }
impl Tracker { impl Tracker {
pub fn from_info(server_ip: &str, port: u16) -> Result<()> { pub fn from_info(server_ip: &str, port: u16) -> Self {
// let server = format!("tcp://{}:{}", server_ip, port) // let server = format!("tcp://{}:{}", server_ip, port)
// .parse::<ServerInfo>() // .parse::<ServerInfo>()
// .unwrap(); // .unwrap();
@ -50,12 +52,12 @@ impl Tracker {
let addr: SocketAddr = "127.0.0.1:3883".parse().unwrap(); let addr: SocketAddr = "127.0.0.1:3883".parse().unwrap();
let mut stream = TcpStream::connect(addr)?; let mut stream = TcpStream::connect(addr).unwrap();
stream.set_nodelay(true)?; stream.set_nodelay(true).unwrap();
// We first write our cookie, then read and check the server's cookie, before the loop. // We first write our cookie, then read and check the server's cookie, before the loop.
write_cookie(&mut stream, CookieData::from(MAGIC_DATA))?; write_cookie(&mut stream, CookieData::from(MAGIC_DATA)).unwrap();
let cookie_buf = read_cookie(&mut stream)?; let cookie_buf = read_cookie(&mut stream).unwrap();
let mut cookie_buf = Bytes::from(&cookie_buf[..]); let mut cookie_buf = Bytes::from(&cookie_buf[..]);
// CookieData::unbuffer_ref(&mut cookie_buf) // CookieData::unbuffer_ref(&mut cookie_buf)
@ -63,14 +65,18 @@ impl Tracker {
let mut endpoint = EndpointSyncTcp::new(stream); let mut endpoint = EndpointSyncTcp::new(stream);
let mut dispatcher = TypeDispatcher::new(); let mut dispatcher = TypeDispatcher::new();
let _ = dispatcher.add_typed_handler(Box::new(TrackerHandler {}), None)?; let _ = dispatcher.add_typed_handler(Box::new(TrackerHandler {}), None).unwrap();
Tracker {
endpoint,
dispatcher
}
// Ok(Self {
// // stream: ConnectionIpStream::new(Arc::clone(&connection)),
// // connection
// })
} }
fn update(&self) {
self.endpoint.poll_endpoint(&mut self.dispatcher).unwrap();
}
} }
@ -84,6 +90,8 @@ pub fn update_tracker(mut query:Query<&mut Tracker>)
{ {
for mut tracker in query.iter_mut() { for mut tracker in query.iter_mut() {
// tracker.update();
// tracker.connection.poll_endpoints(); // tracker.connection.poll_endpoints();
// tracker // tracker
} }