Trait glimesh::SubscriptionConn
source · 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§
Required Methods§
sourcefn 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,
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.