pub struct Hub { /* private fields */ }Available on non-WebAssembly only.
Expand description
Topics and their subscribers; cheap to clone (all clones share them).
Implementations§
Source§impl Hub
impl Hub
pub fn new() -> Hub
Sourcepub fn publish(&self, topic: &str, message: &str) -> usize
pub fn publish(&self, topic: &str, message: &str) -> usize
Send message to every subscriber of topic; the number it was
delivered to. SSE clients get it as an event named after the topic
(EventSource.addEventListener(topic, …)), WebSocket clients as a
text message.
Sourcepub fn sse(&self, topic: &str) -> Response
pub fn sse(&self, topic: &str) -> Response
A streaming SSE response subscribed to topic: return it from the
handler.
Sourcepub fn subscribe_websocket(&self, topic: &str, sender: WebSocketSender)
pub fn subscribe_websocket(&self, topic: &str, sender: WebSocketSender)
Subscribe a WebSocket client (its sender) to topic.
Sourcepub fn serve_websocket<F>(
&self,
ws: WebSocketConnection,
topic: &str,
on_message: F,
)
pub fn serve_websocket<F>( &self, ws: WebSocketConnection, topic: &str, on_message: F, )
Subscribe ws to topic and read its messages until it closes,
handing each text message to on_message(hub, topic, text). Run it
in a .websocket(…) handler.
Sourcepub fn subscribe(&self, topic: &str) -> Receiver<String>
pub fn subscribe(&self, topic: &str) -> Receiver<String>
Subscribe in-process: every message to topic arrives on the
receiver until it’s dropped.
Sourcepub fn subscribers(&self, topic: &str) -> usize
pub fn subscribers(&self, topic: &str) -> usize
How many subscribers topic has (some may have gone away since the
last publish).
Trait Implementations§
Auto Trait Implementations§
impl Forget for Hub
impl Freeze for Hub
impl RefUnwindSafe for Hub
impl Send for Hub
impl Sync for Hub
impl Unpin for Hub
impl UnsafeUnpin for Hub
impl UnwindSafe for Hub
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<T> ServiceExt for T
impl<T> ServiceExt for T
Source§fn map_response_body<F>(self, f: F) -> MapResponseBody<Self, F>where
Self: Sized,
fn map_response_body<F>(self, f: F) -> MapResponseBody<Self, F>where
Self: Sized,
Available on crate feature
map-response-body only.Apply a transformation to the response body. Read more
Source§fn trace_for_http(self) -> Trace<Self, SharedClassifier<ServerErrorsAsFailures>>where
Self: Sized,
fn trace_for_http(self) -> Trace<Self, SharedClassifier<ServerErrorsAsFailures>>where
Self: Sized,
Available on crate feature
trace only.High level tracing that classifies responses using HTTP status codes. Read more
Source§fn trace_for_grpc(self) -> Trace<Self, SharedClassifier<GrpcErrorsAsFailures>>where
Self: Sized,
fn trace_for_grpc(self) -> Trace<Self, SharedClassifier<GrpcErrorsAsFailures>>where
Self: Sized,
Available on crate feature
trace only.High level tracing that classifies responses using gRPC headers. Read more