pub struct WebSocketRuntime { /* private fields */ }Expand description
WebSocket 运行时
封装 sz_orm_websocket::WsServer,提供服务端 lifecycle 管理。
§设计
- 默认使用
DefaultWebSocketHandler(echo 模式),可替换为自定义 handler start方法 spawn 后台任务,返回JoinHandle<()>stop方法调用WsServer::stop(),触发 oneshot shutdown- 监听
CancellationToken:收到信号后自动调用WsServer::stop()
§用法
ⓘ
use sz_rust_core::runtime::websocket::{WebSocketRuntime, WebSocketRuntimeConfig};
use tokio_util::sync::CancellationToken;
let runtime = WebSocketRuntime::new(WebSocketRuntimeConfig::new("0.0.0.0:2346"));
let token = CancellationToken::new();
let handle = runtime.start(token.clone());
// ... 业务运行 ...
token.cancel();
let _ = handle.await;Implementations§
Source§impl WebSocketRuntime
impl WebSocketRuntime
Sourcepub fn new(config: WebSocketRuntimeConfig) -> Self
pub fn new(config: WebSocketRuntimeConfig) -> Self
创建 WebSocket 运行时,使用默认 handler
Sourcepub fn start(&self, token: CancellationToken) -> JoinHandle<Result<(), WsError>> ⓘ
pub fn start(&self, token: CancellationToken) -> JoinHandle<Result<(), WsError>> ⓘ
启动 WebSocket 服务(返回 JoinHandle,调用方持有)
- 使用
DefaultWebSocketHandler处理连接 - 监听
token.cancelled(),收到信号后调用server.stop()
Sourcepub fn start_with_handler(
&self,
handler: Arc<dyn WebSocketHandler>,
token: CancellationToken,
) -> JoinHandle<Result<(), WsError>> ⓘ
pub fn start_with_handler( &self, handler: Arc<dyn WebSocketHandler>, token: CancellationToken, ) -> JoinHandle<Result<(), WsError>> ⓘ
使用自定义 handler 启动 WebSocket 服务
Sourcepub async fn connection_count(&self) -> usize
pub async fn connection_count(&self) -> usize
获取当前连接数
Sourcepub async fn is_running(&self) -> bool
pub async fn is_running(&self) -> bool
是否仍在运行
Sourcepub fn config(&self) -> &WebSocketRuntimeConfig
pub fn config(&self) -> &WebSocketRuntimeConfig
获取配置
Auto Trait Implementations§
impl !RefUnwindSafe for WebSocketRuntime
impl !UnwindSafe for WebSocketRuntime
impl Freeze for WebSocketRuntime
impl Send for WebSocketRuntime
impl Sync for WebSocketRuntime
impl Unpin for WebSocketRuntime
impl UnsafeUnpin for WebSocketRuntime
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> 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<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.