summaryrefslogtreecommitdiffstats
path: root/ipfs-api/examples/pubsub.rs
diff options
context:
space:
mode:
Diffstat (limited to 'ipfs-api/examples/pubsub.rs')
-rw-r--r--ipfs-api/examples/pubsub.rs86
1 files changed, 0 insertions, 86 deletions
diff --git a/ipfs-api/examples/pubsub.rs b/ipfs-api/examples/pubsub.rs
deleted file mode 100644
index 1c6a34c..0000000
--- a/ipfs-api/examples/pubsub.rs
+++ /dev/null
@@ -1,86 +0,0 @@
-// Copyright 2017 rust-ipfs-api Developers
-//
-// Licensed under the Apache License, Version 2.0, <LICENSE-APACHE or
-// http://apache.org/licenses/LICENSE-2.0> or the MIT license <LICENSE-MIT or
-// http://opensource.org/licenses/MIT>, at your option. This file may not be
-// copied, modified, or distributed except according to those terms.
-//
-
-#[macro_use]
-extern crate futures;
-
-use futures::{future, FutureExt, StreamExt, TryStreamExt};
-use ipfs_api::IpfsClient;
-use std::time::Duration;
-use tokio::time;
-use tokio_stream::wrappers::IntervalStream;
-
-static TOPIC: &'static str = "test";
-
-fn get_client() -> IpfsClient {
- eprintln!("connecting to localhost:5001...");
-
- IpfsClient::default()
-}
-
-// Creates an Ipfs client, and simultaneously publishes and reads from a pubsub
-// topic.
-//
-#[cfg_attr(feature = "with-actix", actix_rt::main)]
-#[cfg_attr(feature = "with-hyper", tokio::main)]
-async fn main() {
- tracing_subscriber::fmt::init();
-
- eprintln!("note: ipfs must be run with the --enable-pubsub-experiment flag");
-
- let publish_client = get_client();
-
- // This block will execute a repeating function that sends
- // a message to the "test" topic.
- //
- let interval = time::interval(Duration::from_secs(1));
- let mut publish = IntervalStream::new(interval)
- .then(|_| future::ok(())) // Coerce the stream into a TryStream
- .try_for_each(|_| {
- eprintln!();
- eprintln!("publishing message...");
-
- publish_client
- .pubsub_pub(TOPIC, "Hello World!")
- .boxed_local()
- })
- .boxed_local()
- .fuse();
-
- // This block will execute a future that suscribes to a topic,
- // and reads any incoming messages.
- //
- let mut subscribe = {
- let client = get_client();
-
- client
- .pubsub_sub(TOPIC, false)
- .take(5)
- .try_for_each(|msg| {
- eprintln!();
- eprintln!("received ({:?})", msg);
-
- future::ok(())
- })
- .fuse()
- };
-
- eprintln!();
- eprintln!("publish messages to ({})...", TOPIC);
- eprintln!("waiting for messages from ({})...", TOPIC);
-
- select! {
- res = publish => if let Err(e) = res {
- eprintln!("error publishing messages: {}", e);
- },
- res = subscribe => match res {
- Ok(_) => eprintln!("done reading messages..."),
- Err(e) => eprintln!("error reading messages: {}", e)
- },
- }
-}