socketioxide icon indicating copy to clipboard operation
socketioxide copied to clipboard

Are there any plans to add a client implementation?

Open mendess opened this issue 1 year ago • 6 comments

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

mendess avatar Sep 15 '24 22:09 mendess

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.

Totodore avatar Sep 16 '24 10:09 Totodore

@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.

ctrlaltf24 avatar Sep 20 '24 00:09 ctrlaltf24

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

Halkcyon avatar May 03 '25 22:05 Halkcyon

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?

Totodore avatar May 03 '25 22:05 Totodore

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.

zicklag avatar Sep 08 '25 20:09 zicklag

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.

  1. First, it's almost never updated, and issues go unanswered; the author seems to lack the time to manage it.

  2. It uses native TLS instead of rustls, which causes compatibility issues with many libraries, as most libraries now use rustls.

  3. 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.

ISensuiI avatar Nov 16 '25 11:11 ISensuiI