1use tpcp_std::{TPCPNode, AgentIdentity, Intent};
3use std::sync::Arc;
4use tokio::time::{sleep, Duration};
5
6#[tokio::main]
7async fn main() {
8 let server_identity = AgentIdentity {
10 agent_id: "server-001".into(),
11 framework: "hello-server".into(),
12 capabilities: vec![],
13 public_key: "".into(),
14 modality: vec!["text".into()],
15 };
16 let server = Arc::new(TPCPNode::new(server_identity));
17
18 server.register_handler(Intent::Handshake, |env| {
19 println!("Server received HANDSHAKE from {}", env.header.sender_id);
20 println!("Payload: {}", env.payload);
21 }).await;
22
23 server.listen("127.0.0.1:9001").await.expect("failed to listen");
24 sleep(Duration::from_millis(100)).await; let client_identity = AgentIdentity {
28 agent_id: "client-001".into(),
29 framework: "hello-client".into(),
30 capabilities: vec![],
31 public_key: "".into(),
32 modality: vec!["text".into()],
33 };
34 let client = TPCPNode::new(client_identity);
35
36 client.send_message(
37 "ws://127.0.0.1:9001",
38 "server-001",
39 Intent::Handshake,
40 serde_json::json!({"payload_type": "text", "content": "hello from Rust client"}),
41 ).await.expect("send failed");
42
43 sleep(Duration::from_millis(200)).await;
44 println!("TPCP Rust SDK hello example completed.");
45}