socketioxide
socketioxide copied to clipboard
A socket.io server implementation in Rust that integrates with the Tower ecosystem and the Tokio stack.
## Modify the `Extension` implementation * Use a `RwLock` rather than a `DashMap` for concurrent access. * Add a clone bound on the data and directly `Clone` the returned data...
Currently the global state management is done with a static state. It is convenient because the user can put non clonable data and get a `'static ref` from any callback....
I have noticed that [dynamic namespaces](https://socket.io/docs/v3/namespaces/#dynamic-namespaces) via regex are not yet implemented. Is this planned? Is there a way for custom middleware to handle this in the meantime?
This allows users to create a payload struct (that implements `Serialize`/`Deserialize`) that has any binary payload data embedded in the struct directly, rather than needing to look in a "side"...
**Is your feature request related to a problem? Please describe.** Head-of-line blocking and lack of multi-path make it meaningfully more difficult to build on top of WebSocket-based setups. **Describe the...
**Is your feature request related to a problem? Please describe.** unable to use socketio with rocket server.How to use socketio with rocket server? **Describe the solution you'd like** provide example...
**Describe the bug** Cannot use socket extensions inside async namespace middleware **To Reproduce** Code that reproduce error: `main.rs` ```rust use socketioxide::extensions::{Extensions, Ref}; use socketioxide::extract::SocketRef; use socketioxide::handler::ConnectHandler; use socketioxide::SocketIo; use tokio::net::TcpListener;...
**Describe the bug** Related to #275, if socketioxide is fixed to support complex binary data formats, the handler API as-is becomes ambiguous and difficult to work with. The handler presents...
**Describe the bug** When a socketioxide-based server receives a binary event, it only handles `_placeholder`s in [two simplistic ways](https://github.com/Totodore/socketioxide/blob/main/socketioxide/src/packet.rs#L252-L271): 1. If the payload is an array, it looks for objects...
Make a version of the adapter trait async. This will allow remote adapter implementation (e.g redis adapter, mongodb adapter).