pub trait SubscriptionConn {
    type Error;

    // Required method
    fn subscribe<'life0, 'async_trait, Q>(
        &'life0 self,
        variables: Q::Variables
    ) -> Pin<Box<dyn Future<Output = Result<Subscription<Q::ResponseData>, Self::Error>> + Send + 'async_trait>>
       where Q: GraphQLQuery + 'async_trait,
             Q::Variables: Send + Sync,
             Self: 'async_trait,
             'life0: 'async_trait;
}
Expand description

Connections that implement this support graphql subscriptions.

Required Associated Types§

source

type Error

Error type representing any errors that can occurr when subscribing

Required Methods§

source

fn subscribe<'life0, 'async_trait, Q>( &'life0 self, variables: Q::Variables ) -> Pin<Box<dyn Future<Output = Result<Subscription<Q::ResponseData>, Self::Error>> + Send + 'async_trait>>where Q: GraphQLQuery + 'async_trait, Q::Variables: Send + Sync, Self: 'async_trait, 'life0: 'async_trait,

Send a graphql subscription over this connection. The future will resolve when the subscription has been established, and then any messages will be sent on the returned stream

This subscription is resiliant against errors on the underlying connection, such that for example, if the websocket connection fails, when/if it succesfully reconnects, the subscriptions will be replayed on the new connection. This is currently unobservable, please open an issue if you need to be able to detect when this happens.

Errors

This function may error if there was a problem with the underlying connection such as a dns resolution error, or the websocket is disconnected, or if the api returned an error or the api response failed to decode.

Implementors§

source§

impl SubscriptionConn for glimesh::ws::Connection

source§

impl<C, S> SubscriptionConn for glimesh::hybrid::Connection<C, S>where S: SubscriptionConn + Send + Sync, C: Send + Sync,