Fix producer: now listens to incoming packets
This commit is contained in:
parent
99c0be80a3
commit
aab0158d15
|
@ -1,11 +1,9 @@
|
|||
use syndicate::value::Value;
|
||||
use syndicate::packets::{ClientCodec, C2S, S2C, Action};
|
||||
use tokio::io::AsyncRead;
|
||||
use tokio::net::TcpStream;
|
||||
use tokio_util::codec::Framed;
|
||||
use futures::SinkExt;
|
||||
use futures::StreamExt;
|
||||
use std::future::Future;
|
||||
use futures::{SinkExt, StreamExt, poll};
|
||||
use std::task::Poll;
|
||||
|
||||
#[tokio::main]
|
||||
async fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
|
@ -13,26 +11,6 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
|
|||
ClientCodec::standard());
|
||||
frames.send(C2S::Connect(Value::from("chat").wrap())).await?;
|
||||
|
||||
// let m = Action::Message(
|
||||
// Value::simple_record("Says", vec![
|
||||
// Value::from("producer").wrap(),
|
||||
// Value::from(123).wrap(),
|
||||
// ]).wrap());
|
||||
// loop {
|
||||
// frames.send(C2S::Turn(vec![
|
||||
// m.clone(),
|
||||
// m.clone(),
|
||||
// m.clone(),
|
||||
// m.clone(),
|
||||
// m.clone(),
|
||||
// m.clone(),
|
||||
// m.clone(),
|
||||
// m.clone(),
|
||||
// m.clone(),
|
||||
// m.clone(),
|
||||
// ])).await?;
|
||||
// }
|
||||
|
||||
let mut counter: u64 = 0;
|
||||
loop {
|
||||
counter = counter + 1;
|
||||
|
@ -41,12 +19,19 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
|
|||
Value::from("producer").wrap(),
|
||||
Value::from(counter).wrap(),
|
||||
]).wrap())])).await?;
|
||||
// match frames.poll_read() {
|
||||
// None => (),
|
||||
// Some(res) => match res {
|
||||
// S2C::Ping() => frames.send(C2S::Pong()).await?,
|
||||
// other => print!("{:?}\n", other),
|
||||
// }
|
||||
// }
|
||||
loop {
|
||||
match poll!(frames.next()) {
|
||||
Poll::Pending => break,
|
||||
Poll::Ready(None) => {
|
||||
print!("Server closed connection");
|
||||
return Ok(());
|
||||
}
|
||||
Poll::Ready(Some(res)) => {
|
||||
let p = res?;
|
||||
print!("{:?}\n", p);
|
||||
if let S2C::Ping() = p { frames.send(C2S::Pong()).await? }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue