pub struct LongPollingServiceContext<AdditionalData, CustomData> { /* private fields */ }Expand description
Context for sending messages to channels.
Implementations§
Source§impl<AdditionalData, CustomData> LongPollingServiceContext<AdditionalData, CustomData>
impl<AdditionalData, CustomData> LongPollingServiceContext<AdditionalData, CustomData>
Sourcepub fn rx(&self) -> CometdEventReceiver<AdditionalData, CustomData>
pub fn rx(&self) -> CometdEventReceiver<AdditionalData, CustomData>
Get new events receiver.
§Example
let mut rx = context.rx();
while let Some(event) = rx.recv().await {
println!("Got event: `{event:?}`");
}Sourcepub fn tx(&self) -> CometdCustomDataSender<AdditionalData, CustomData>
pub fn tx(&self) -> CometdCustomDataSender<AdditionalData, CustomData>
Sourcepub async fn send(
&self,
channel: &str,
message: impl Debug + Serialize,
) -> Result<(), SendError>
pub async fn send( &self, channel: &str, message: impl Debug + Serialize, ) -> Result<(), SendError>
Send message to channel.
§Example
#[derive(Debug, Clone, serde::Serialize)]
struct Data<'a> {
msg: std::borrow::Cow<'a, str>,
r#bool: bool,
num: u64,
}
let context = axum_cometd::LongPollingServiceContextBuilder::new()
.timeout(Duration::from_secs(1))
.max_interval(Duration::from_secs(2))
.client_channel_capacity(10_000)
.subscription_channel_capacity(20_000)
.build::<(), ()>();
loop {
context
.send(
"/topic",
Data {
msg: "Hello World!!!".into(),
r#bool: true,
num: u64::MAX,
},
)
.await?;
tokio::time::sleep(std::time::Duration::from_millis(1000)).await;
}Sourcepub async fn send_to_client(
&self,
channel: &str,
client_id: &ClientId,
msg: impl Debug + Serialize,
) -> Result<(), SendError>
pub async fn send_to_client( &self, channel: &str, client_id: &ClientId, msg: impl Debug + Serialize, ) -> Result<(), SendError>
Send message direct to client.
Sourcepub async fn unsubscribe(self: &Arc<Self>, client_id: ClientId)
pub async fn unsubscribe(self: &Arc<Self>, client_id: ClientId)
Remove client.
Trait Implementations§
Auto Trait Implementations§
impl<AdditionalData, CustomData> !Freeze for LongPollingServiceContext<AdditionalData, CustomData>
impl<AdditionalData, CustomData> !RefUnwindSafe for LongPollingServiceContext<AdditionalData, CustomData>
impl<AdditionalData, CustomData> Send for LongPollingServiceContext<AdditionalData, CustomData>
impl<AdditionalData, CustomData> Sync for LongPollingServiceContext<AdditionalData, CustomData>
impl<AdditionalData, CustomData> Unpin for LongPollingServiceContext<AdditionalData, CustomData>
impl<AdditionalData, CustomData> !UnwindSafe for LongPollingServiceContext<AdditionalData, CustomData>
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