pub struct WebSocketClient { /* private fields */ }
Expand description
WebSocket client with automatic reconnection.
Handles connection state, Python callbacks, and rate limiting. See module docs for architecture details.
Implementations§
Source§impl WebSocketClient
impl WebSocketClient
Sourcepub async fn connect_stream(
config: WebSocketConfig,
keyed_quotas: Vec<(String, Quota)>,
default_quota: Option<Quota>,
) -> Result<(MessageReader, Self), Error>
pub async fn connect_stream( config: WebSocketConfig, keyed_quotas: Vec<(String, Quota)>, default_quota: Option<Quota>, ) -> Result<(MessageReader, Self), Error>
Creates a websocket client that returns a stream for reading messages.
Sourcepub async fn connect(
config: WebSocketConfig,
post_connection: Option<PyObject>,
post_reconnection: Option<PyObject>,
post_disconnection: Option<PyObject>,
keyed_quotas: Vec<(String, Quota)>,
default_quota: Option<Quota>,
) -> Result<Self, Error>
pub async fn connect( config: WebSocketConfig, post_connection: Option<PyObject>, post_reconnection: Option<PyObject>, post_disconnection: Option<PyObject>, keyed_quotas: Vec<(String, Quota)>, default_quota: Option<Quota>, ) -> Result<Self, Error>
Creates a websocket client.
Creates an inner client and controller task to reconnect or disconnect the client. Also assumes ownership of writer from inner client.
Sourcepub fn connection_mode(&self) -> ConnectionMode
pub fn connection_mode(&self) -> ConnectionMode
Returns the current connection mode.
Sourcepub fn is_active(&self) -> bool
pub fn is_active(&self) -> bool
Check if the client connection is active.
Returns true
if the client is connected and has not been signalled to disconnect.
The client will automatically retry connection based on its configuration.
Sourcepub fn is_disconnected(&self) -> bool
pub fn is_disconnected(&self) -> bool
Check if the client is disconnected.
Sourcepub fn is_reconnecting(&self) -> bool
pub fn is_reconnecting(&self) -> bool
Check if the client is reconnecting.
Returns true
if the client lost connection and is attempting to reestablish it.
The client will automatically retry connection based on its configuration.
Sourcepub fn is_disconnecting(&self) -> bool
pub fn is_disconnecting(&self) -> bool
Check if the client is disconnecting.
Returns true
if the client is in disconnect mode.
Sourcepub fn is_closed(&self) -> bool
pub fn is_closed(&self) -> bool
Check if the client is closed.
Returns true
if the client has been explicitly disconnected or reached
maximum reconnection attempts. In this state, the client cannot be reused
and a new client must be created for further connections.
Sourcepub async fn disconnect(&self)
pub async fn disconnect(&self)
Set disconnect mode to true.
Controller task will periodically check the disconnect mode and shutdown the client if it is alive
pub async fn send_text( &self, data: String, keys: Option<Vec<String>>, ) -> Result<(), Error>
pub async fn send_bytes( &self, data: Vec<u8>, keys: Option<Vec<String>>, ) -> Result<(), Error>
pub async fn send_close_message(&self)
Trait Implementations§
Source§impl IntoPy<Py<PyAny>> for WebSocketClient
impl IntoPy<Py<PyAny>> for WebSocketClient
Source§impl<'py> IntoPyObject<'py> for WebSocketClient
impl<'py> IntoPyObject<'py> for WebSocketClient
Source§type Target = WebSocketClient
type Target = WebSocketClient
Source§type Output = Bound<'py, <WebSocketClient as IntoPyObject<'py>>::Target>
type Output = Bound<'py, <WebSocketClient as IntoPyObject<'py>>::Target>
Source§fn into_pyobject(
self,
py: Python<'py>,
) -> Result<<Self as IntoPyObject<'_>>::Output, <Self as IntoPyObject<'_>>::Error>
fn into_pyobject( self, py: Python<'py>, ) -> Result<<Self as IntoPyObject<'_>>::Output, <Self as IntoPyObject<'_>>::Error>
Source§impl PyClass for WebSocketClient
impl PyClass for WebSocketClient
Source§impl PyClassImpl for WebSocketClient
impl PyClassImpl for WebSocketClient
Source§const IS_BASETYPE: bool = false
const IS_BASETYPE: bool = false
Source§const IS_SUBCLASS: bool = false
const IS_SUBCLASS: bool = false
Source§const IS_MAPPING: bool = false
const IS_MAPPING: bool = false
Source§const IS_SEQUENCE: bool = false
const IS_SEQUENCE: bool = false
Source§type ThreadChecker = SendablePyClass<WebSocketClient>
type ThreadChecker = SendablePyClass<WebSocketClient>
Source§type PyClassMutability = <<PyAny as PyClassBaseType>::PyClassMutability as PyClassMutability>::MutableChild
type PyClassMutability = <<PyAny as PyClassBaseType>::PyClassMutability as PyClassMutability>::MutableChild
Source§type BaseNativeType = PyAny
type BaseNativeType = PyAny
PyAny
by default, and when you declare
#[pyclass(extends=PyDict)]
, it’s PyDict
.fn items_iter() -> PyClassItemsIter
fn lazy_type_object() -> &'static LazyTypeObject<Self>
fn dict_offset() -> Option<isize>
fn weaklist_offset() -> Option<isize>
Source§impl<'a, 'py> PyFunctionArgument<'a, 'py> for &'a WebSocketClient
impl<'a, 'py> PyFunctionArgument<'a, 'py> for &'a WebSocketClient
Source§impl<'a, 'py> PyFunctionArgument<'a, 'py> for &'a mut WebSocketClient
impl<'a, 'py> PyFunctionArgument<'a, 'py> for &'a mut WebSocketClient
Source§impl PyMethods<WebSocketClient> for PyClassImplCollector<WebSocketClient>
impl PyMethods<WebSocketClient> for PyClassImplCollector<WebSocketClient>
fn py_methods(self) -> &'static PyClassItems
Source§impl PyTypeInfo for WebSocketClient
impl PyTypeInfo for WebSocketClient
Source§fn type_object_raw(py: Python<'_>) -> *mut PyTypeObject
fn type_object_raw(py: Python<'_>) -> *mut PyTypeObject
§fn type_object(py: Python<'_>) -> Bound<'_, PyType>
fn type_object(py: Python<'_>) -> Bound<'_, PyType>
§fn type_object_bound(py: Python<'_>) -> Bound<'_, PyType>
fn type_object_bound(py: Python<'_>) -> Bound<'_, PyType>
PyTypeInfo::type_object
PyTypeInfo::type_object
].§fn is_type_of(object: &Bound<'_, PyAny>) -> bool
fn is_type_of(object: &Bound<'_, PyAny>) -> bool
object
is an instance of this type or a subclass of this type.§fn is_type_of_bound(object: &Bound<'_, PyAny>) -> bool
fn is_type_of_bound(object: &Bound<'_, PyAny>) -> bool
PyTypeInfo::is_type_of
PyTypeInfo::is_type_of
].§fn is_exact_type_of(object: &Bound<'_, PyAny>) -> bool
fn is_exact_type_of(object: &Bound<'_, PyAny>) -> bool
object
is an instance of this type.§fn is_exact_type_of_bound(object: &Bound<'_, PyAny>) -> bool
fn is_exact_type_of_bound(object: &Bound<'_, PyAny>) -> bool
PyTypeInfo::is_exact_type_of
PyTypeInfo::is_exact_type_of
].impl DerefToPyAny for WebSocketClient
Auto Trait Implementations§
impl Freeze for WebSocketClient
impl !RefUnwindSafe for WebSocketClient
impl Send for WebSocketClient
impl Sync for WebSocketClient
impl Unpin for WebSocketClient
impl !UnwindSafe for WebSocketClient
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
§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>
§impl<'py, T> IntoPyObjectExt<'py> for Twhere
T: IntoPyObject<'py>,
impl<'py, T> IntoPyObjectExt<'py> for Twhere
T: IntoPyObject<'py>,
§fn into_bound_py_any(self, py: Python<'py>) -> Result<Bound<'py, PyAny>, PyErr>
fn into_bound_py_any(self, py: Python<'py>) -> Result<Bound<'py, PyAny>, PyErr>
self
into an owned Python object, dropping type information.§fn into_py_any(self, py: Python<'py>) -> Result<Py<PyAny>, PyErr>
fn into_py_any(self, py: Python<'py>) -> Result<Py<PyAny>, PyErr>
self
into an owned Python object, dropping type information and unbinding it
from the 'py
lifetime.§fn into_pyobject_or_pyerr(self, py: Python<'py>) -> Result<Self::Output, PyErr>
fn into_pyobject_or_pyerr(self, py: Python<'py>) -> Result<Self::Output, PyErr>
self
into a Python object. Read more