[][src]Struct cord_client::ClientConn

pub struct ClientConn<S> { /* fields omitted */ }

The ClientConn manages the connection between you and a Cord Broker.

Using a generic Sink (S) allows us to build mocks for testing. However for normal use, it is strongly recommended to use the type alias, Client.

Methods

impl<S> ClientConn<S> where
    S: Sink<Message, Error = MessageError> + Unpin
[src]

pub async fn connect(addr: SocketAddr) -> Result<Client>[src]

Connect to a broker

pub async fn provide<'_>(&'_ mut self, namespace: Pattern) -> Result<()>[src]

Inform the broker that you will be providing a new namespace

pub async fn revoke<'_>(&'_ mut self, namespace: Pattern) -> Result<()>[src]

Inform the broker that you will no longer be providing a namespace

pub async fn subscribe<'_>(
    &'_ mut self,
    namespace: Pattern
) -> Result<Subscriber>
[src]

Subscribe to another provider's namespace

Examples


let mut conn = Client::connect("127.0.0.1:7101".parse().unwrap()).await?;
conn.subscribe("/users/".into())
    .and_then(|sub| async {
        sub.for_each(|(namespace, data)| {
            // Handle the message...
            dbg!("Received the namespace '{}' with data: {}", namespace, data);
            future::ready(())
        })
        .await;
        Ok(())
    })
    .await

pub async fn unsubscribe<'_>(&'_ mut self, namespace: Pattern) -> Result<()>[src]

Unsubscribe from another provider's namespace

pub async fn event<'_, Str: Into<String>>(
    &'_ mut self,
    namespace: Pattern,
    data: Str
) -> Result<()>
[src]

Publish an event to your subscribers

Trait Implementations

impl<E, S, T> Sink<T> for ClientConn<S> where
    S: Sink<T, Error = E>,
    E: Into<Error>, 
[src]

type Error = Error

The type of value produced by the sink when an error occurs.

Auto Trait Implementations

impl<S> !RefUnwindSafe for ClientConn<S>

impl<S> Send for ClientConn<S> where
    S: Send

impl<S> Sync for ClientConn<S> where
    S: Sync

impl<S> Unpin for ClientConn<S> where
    S: Unpin

impl<S> !UnwindSafe for ClientConn<S>

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, Item> SinkExt<Item> for T where
    T: Sink<Item> + ?Sized
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.