Are there any plans to add a client implementation?
Is your feature request related to a problem? Please describe. I wanted to have multiple clients, and one written in rust.
Describe the solution you'd like A client capable of connecting to a socketio server
Describe alternatives you've considered
I considered using rust_socketio but it doesn't support acking a server message
It is not planned for the moment and there are a lot of other features I want to add before working on a socket.io client. I will keep this open for tracking purposes though.
@mendess your PR at https://github.com/1c3t3a/rust-socketio/pull/463 looks good, would be easier to get the small change into rust_socketio than make another rust socket.io client.
I have a private socketio client implementation I have for a side-gig I did once since everything public did not support the old integration I needed (v4/engineio v3). It was fairly straightforward to implement from the spec in combination with tungstenite. Just leaving this here for reference on the request:
- https://github.com/socketio/socket.io-protocol/tree/v4#packet-types
- https://github.com/socketio/engine.io-protocol/tree/v3#packet
- https://docs.rs/tungstenite/0.26.2/tungstenite/protocol/enum.Message.html
I have a private socketio client implementation I have for a side-gig I did once since everything public did not support the old integration I needed (v4/engineio v3). It was fairly straightforward to implement from the spec in combination with tungstenite. Just leaving this here for reference on the request:
- https://github.com/socketio/socket.io-protocol/tree/v4#packet-types
- https://github.com/socketio/engine.io-protocol/tree/v3#packet
- https://docs.rs/tungstenite/0.26.2/tungstenite/protocol/enum.Message.html
Nice ! Would you be interested to work on a client implementation based on the existing socketioxide types?
Just leaving a note here that it would be great to have a client implementation based on socketioxide. So far the Rust server is working amazing with the official JS client, but I'm eventually going to want a Rust client, too, and rust_socketio seems to be the only major alternative, and it doesn't have support for messagepack ( https://github.com/1c3t3a/rust-socketio/issues/406 ).
I don't need the Rust client yet, but when I end up needing it, I'll probably experiment with implementing a client based on the socketioxide types.
I'm hoping to add a socketio client implementation. I'm currently using socketioxide as the server, but I've found that there's only one socketio client in the Rust ecosystem: rust_socketio. While it works, it has many problems.
-
First, it's almost never updated, and issues go unanswered; the author seems to lack the time to manage it.
-
It uses native TLS instead of rustls, which causes compatibility issues with many libraries, as most libraries now use rustls.
-
I've searched for other client libraries, but none are mature. Furthermore, only socketioxide provides a truly robust socketio server-side implementation. Therefore, I would appreciate it if a client could be maintained. My current solution, rust_socketio, has numerous unresolved issues.