aboutsummaryrefslogtreecommitdiff
path: root/planetwars-client/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'planetwars-client/src/main.rs')
-rw-r--r--planetwars-client/src/main.rs32
1 files changed, 23 insertions, 9 deletions
diff --git a/planetwars-client/src/main.rs b/planetwars-client/src/main.rs
index 9d9bdab..d995ebc 100644
--- a/planetwars-client/src/main.rs
+++ b/planetwars-client/src/main.rs
@@ -2,20 +2,34 @@ pub mod pb {
tonic::include_proto!("grpc.planetwars.bot_api");
}
-use pb::test_service_client::TestServiceClient;
-use pb::{Hello, HelloResponse};
-use tonic::Response;
+use pb::bot_api_service_client::BotApiServiceClient;
+use tokio_stream::wrappers::UnboundedReceiverStream;
+
+use tokio::sync::mpsc;
#[tokio::main]
async fn main() {
- let mut client = TestServiceClient::connect("http://localhost:50051")
+ let mut client = BotApiServiceClient::connect("http://localhost:50051")
.await
.unwrap();
- let response: Response<HelloResponse> = client
- .greet(Hello {
- hello_message: "robbe".to_string(),
- })
+
+ let (tx, rx) = mpsc::unbounded_channel();
+ let mut stream = client
+ .connect_bot(UnboundedReceiverStream::new(rx))
.await
+ .unwrap()
+ .into_inner();
+ while let Some(message) = stream.message().await.unwrap() {
+ let state = String::from_utf8(message.content).unwrap();
+ println!("{}", state);
+ let response = r#"{ moves: [] }"#;
+ tx.send(pb::PlayerRequestResponse {
+ request_id: message.request_id,
+ content: response.as_bytes().to_vec(),
+ })
.unwrap();
- println!("{}", response.get_ref().response);
+ }
+ std::mem::drop(tx);
+ // for clean exit
+ std::mem::drop(client);
}