Struct WebSocketRelayInjector
pub struct WebSocketRelayInjector { /* private fields */ }http and std and ws only.Expand description
A handle for injecting application data into a live WebSocket MITM relay.
Relay middleware can retrieve this handle from its extensions after message injection is enabled on the relay service.
The supplied WebSocketRelayDirection describes the direction the
message travels: ingress messages are sent to the upstream peer, while
egress messages are sent to the downstream peer. Injected messages bypass
relay middleware because they did not originate from either peer.
Implementations§
§impl WebSocketRelayInjector
impl WebSocketRelayInjector
pub fn is_open(&self) -> bool
pub fn is_open(&self) -> bool
Returns whether both sides of the relay can still accept injected data.
pub async fn closed(&self)
pub async fn closed(&self)
Wait until the relay has stopped accepting injected messages.
pub async fn send(
&self,
direction: WebSocketRelayDirection,
message: WebSocketRelayMessage,
) -> Result<(), ProtocolError>
pub async fn send( &self, direction: WebSocketRelayDirection, message: WebSocketRelayMessage, ) -> Result<(), ProtocolError>
Send an application data message through the live relay.
This resolves only after the destination WebSocket sink accepted and
flushed the message. A full injection queue returns
ProtocolError::WriteBufferFull with the original message, an
oversized payload returns ProtocolError::MessageTooLong, and a
closed relay is reported as an I/O-flavoured ProtocolError.
Trait Implementations§
§impl Clone for WebSocketRelayInjector
impl Clone for WebSocketRelayInjector
§fn clone(&self) -> WebSocketRelayInjector
fn clone(&self) -> WebSocketRelayInjector
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more§impl Debug for WebSocketRelayInjector
impl Debug for WebSocketRelayInjector
impl Extension for WebSocketRelayInjector
Auto Trait Implementations§
impl Freeze for WebSocketRelayInjector
impl RefUnwindSafe for WebSocketRelayInjector
impl Send for WebSocketRelayInjector
impl Sync for WebSocketRelayInjector
impl Unpin for WebSocketRelayInjector
impl UnsafeUnpin for WebSocketRelayInjector
impl UnwindSafe for WebSocketRelayInjector
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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
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,
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
§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> ⓘ
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> ⓘ
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 more§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a rama_grpc::Request§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§fn and<P, B, E>(self, other: P) -> And<T, P>
fn and<P, B, E>(self, other: P) -> And<T, P>
Policy that returns Action::Follow only if self and other return
Action::Follow. Read more