24 lines
935 B
Rust
24 lines
935 B
Rust
|
use std::time::Duration;
|
||
|
use nostr_sdk::prelude::*;
|
||
|
|
||
|
#[tokio::main]
|
||
|
async fn main() {
|
||
|
//tracing_subscriber::fmt::init();
|
||
|
let client = Client::new(Keys::generate());
|
||
|
let result = client.subscribe(vec![Filter::new()], None).await;
|
||
|
println!("subscribe: {:?}", result);
|
||
|
let result = client.add_relay("ws://localhost:4736").await;
|
||
|
println!("add relay: {:?}", result);
|
||
|
client.connect().await;
|
||
|
|
||
|
let mut notifications = client.notifications();
|
||
|
let _thread = tokio::spawn(async move {
|
||
|
client.send_event_builder(EventBuilder::new(Kind::TextNote, "test")).await;
|
||
|
tokio::time::sleep(Duration::from_secs(20)).await;
|
||
|
});
|
||
|
while let Ok(notification) = notifications.recv().await {
|
||
|
if let RelayPoolNotification::Event { event, .. } = notification {
|
||
|
println!("At {} found {} kind {} content \"{}\"", event.created_at, event.id, event.kind, event.content);
|
||
|
}
|
||
|
}
|
||
|
}
|