- // for every String message
- while let Ok(msg) = receiver.recv().await {
- info!("Echoing message: {}", msg);
-
- let response = format!("{}, right back at you!", msg);
-
- // Send the message back to its source
- if let Err(err) = sender.send(response).await {
- error!("Could not echo message: {:#?}", err);
+ while let Some(msg) = conn.reader().next().await {
+ if msg.is::<HelloWorld>() {
+ if let Ok(Some(contents)) = msg.unpack::<HelloWorld>() {
+ info!(
+ "Received a message \"{}\" from {}",
+ contents.get_message(),
+ conn.peer_addr()
+ );
+
+ conn.writer()
+ .send(contents)
+ .await
+ .expect("Could not send message back to source connection");
+ info!("Sent message back to original sender");
+ }
+ } else {
+ error!("Received a message of unknown type")