mirror of
				https://github.com/edera-dev/krata.git
				synced 2025-11-03 23:29:39 +00:00 
			
		
		
		
	krata: rework into daemon / controller structure
This commit is contained in:
		
							
								
								
									
										28
									
								
								daemon/examples/dial.rs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								daemon/examples/dial.rs
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,28 @@
 | 
			
		||||
use anyhow::Result;
 | 
			
		||||
use krata::control::{ListRequest, Message, Request, RequestBox};
 | 
			
		||||
use tokio::{
 | 
			
		||||
    io::{AsyncBufReadExt, AsyncWriteExt, BufReader},
 | 
			
		||||
    net::TcpStream,
 | 
			
		||||
};
 | 
			
		||||
use tokio_stream::{wrappers::LinesStream, StreamExt};
 | 
			
		||||
 | 
			
		||||
#[tokio::main]
 | 
			
		||||
async fn main() -> Result<()> {
 | 
			
		||||
    let mut stream = TcpStream::connect("127.0.0.1:4050").await?;
 | 
			
		||||
    let (read, mut write) = stream.split();
 | 
			
		||||
    let mut read = LinesStream::new(BufReader::new(read).lines());
 | 
			
		||||
 | 
			
		||||
    let send = Message::Request(RequestBox {
 | 
			
		||||
        id: 1,
 | 
			
		||||
        request: Request::List(ListRequest {}),
 | 
			
		||||
    });
 | 
			
		||||
    let mut line = serde_json::to_string(&send)?;
 | 
			
		||||
    line.push('\n');
 | 
			
		||||
    write.write_all(line.as_bytes()).await?;
 | 
			
		||||
    println!("sent: {:?}", send);
 | 
			
		||||
    while let Some(line) = read.try_next().await? {
 | 
			
		||||
        let message: Message = serde_json::from_str(&line)?;
 | 
			
		||||
        println!("received: {:?}", message);
 | 
			
		||||
    }
 | 
			
		||||
    Ok(())
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user