-
-
Notifications
You must be signed in to change notification settings - Fork 325
Use Socket.io instead of Websockets #775
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
Comments
Are there any modern browsers that don't support websockets? |
No - But the issue isn't due to browser support. Reverse proxies are known to sometimes be unstable with Websockets under certain configurations. This issue is compounded when using multiple reverse proxies (ex. Nginx + CloudFlare). Over in the Organizr group we see these problems fairly frequently. Most of the time it's fixable through configuration, but a lot of web dev communities have moved to using either Signalr or Socket.io just to avoid the constant user support questions. |
Socket.io will result in us only supporting requiring web frameworks that support long-polling HTTP. But at that point, we may as well axe our websocket-based design and only use long polling HTTP. If we did, it would resolve our file upload problems. @rmorshea What's your opinion on switching the framework to rely on HTTP long polling? I can draft a proof of concept if you'd like. |
I think this should be implemented as an independent backend first. Doing so has two benefits:
I'm particularly interested in 1 since, while not practical at the moment, a socket-io backend ought to be able to re-use code from the existing backend definitions since it will only need to provide a new client and |
I need to learn more about YJS, but it's possible that we should take the same approach with #826 |
After looking at The javascript EDIT: Looks like it doesn't natively support file uploads. If we can figure out a way to use each framework's HTTP internals to handle file uploads, that is probably best. |
Current Situation
Currently, IDOM does not fallback to
keep-alive
HTTP persistent connections in the event that Websockets are not supported.Proposed Actions
Utilize replace Websocket connections with the
Socket.io
API, which fills in this gap.We will need to use
python-socketio
for compatibility, likely the same way they do withTornado
.Related issues
The text was updated successfully, but these errors were encountered: