Struct trillium_channels::ChannelClient

source ·
pub struct ChannelClient { /* private fields */ }
Expand description

§Communicate with the connected client.

Note that although each client is unique and represents a specific websocket connection, the ChannelClient can be cloned and moved elsewhere if needed and any updates to the topic subscriptions will be kept synchronized across clones.

Implementations§

source§

impl ChannelClient

source

pub fn broadcast(&self, event: impl Into<ChannelEvent>)

Send a ChannelEvent to all connected clients. Note that these messages will only reach clients that subscribe to the event’s topic.

source

pub async fn send_event(&self, event: impl Into<ChannelEvent>)

Send a ChannelEvent to this specific client. Note that this message will only be received if the client subscribes to the event’s topic.

source

pub async fn reply_ok(&self, event: &ChannelEvent, payload: &impl Serialize)

Send an ok reply in reference to the provided ChannelEvent with the provided response payload.

Note that this sets the event as "phx_reply" and the payload as {"status": "ok", "response": response }, as well as setting the reference field.

source

pub async fn reply_error(&self, event: &ChannelEvent, error: &impl Serialize)

Send an error reply in reference to the provided ChannelEvent with the provided response payload.

Note that this sets the event as "phx_error" as well as setting the reference field.

source

pub async fn allow_join(&self, event: &ChannelEvent, payload: &impl Serialize)

Join a topic, sending an ok reply with the provided optional value. This sends an ok reply to the client as well as adding the topic to the client’s subscriptions.

Use &() as the payload if no payload is needed.

source

pub async fn allow_leave(&self, event: &ChannelEvent, payload: &impl Serialize)

Leave a topic as requested by the provided channel event, including the optional payload. This sends an ok reply to the client as well as removing the channel from the client’s subscriptions.

Use &() as the payload if no payload is needed.

source

pub fn subscriptions(&self) -> &Subscriptions

Borrow this client’s subscriptions

Trait Implementations§

source§

impl Clone for ChannelClient

source§

fn clone(&self) -> ChannelClient

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for ChannelClient

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

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

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V