Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

dynamic transports #5075

Open
mrfelfel opened this issue Jan 21, 2021 · 5 comments
Open

dynamic transports #5075

mrfelfel opened this issue Jan 21, 2021 · 5 comments
Labels
enhancement New feature or request package:engine.io This concerns the "engine.io" package

Comments

@mrfelfel
Copy link

Transports must be dynamic to provide transports independently.
In my opinion, by making dynamic transports, it is possible to add custom transports such as tcp, mqtt gprc, etc.

But this issue is not implemented in engine.io (or there is no suitable document for it)

Solution
I think providing transport independently, such as engineio-websocket-transport, could be better than the current situation and make it possible to implement different transports.

@mrfelfel mrfelfel added the enhancement New feature or request label Jan 21, 2021
@mrfelfel
Copy link
Author

Related to #5081

@mrfelfel
Copy link
Author

mrfelfel commented Jan 21, 2021

engine.io based on the HTTP request, but for Support TCP or other protocols as Transport
The concept of receiving queries in Engine.io should be developed

in Anatomy of an Engine.IO session
Transport establishes a connection to the Engine.IO with a URL

The connection should be established without a URL as optional

@darrachequesne
Copy link
Member

The transports array is exported here: https://github.com/socketio/engine.io/blob/e5b307c16d8e7594fcec4eb23508f23f78546dc6/lib/engine.io.js#L70 (added in socketio/engine.io@49f9adc)

So it should be possible to provide additional transports. There is currently no documentation for this though, as you have noted.

@darrachequesne darrachequesne added documentation Improvements or additions to documentation and removed enhancement New feature or request labels Jan 22, 2021
@mrfelfel
Copy link
Author

the transports array is a good idea, of course, each transport should be an independent module (like socket.io Redis adapter)
and another point for providing additional transports(like TCP), URL is a bottleneck

@darrachequesne
Copy link
Member

Update: the client-side now has a way to provide a list of transport implementations:

import { Socket, XHR, WebSocket } from "engine.io-client";

const socket = new Socket({
  transports: [XHR, WebSocket]
});

Added in version 6.6.0.

Note: this is not implemented on the server side yet.

@darrachequesne darrachequesne added enhancement New feature or request and removed documentation Improvements or additions to documentation labels Jun 26, 2024
@darrachequesne darrachequesne transferred this issue from socketio/engine.io Jul 9, 2024
@darrachequesne darrachequesne added the package:engine.io This concerns the "engine.io" package label Jul 9, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request package:engine.io This concerns the "engine.io" package
Projects
None yet
Development

No branches or pull requests

2 participants