-
Notifications
You must be signed in to change notification settings - Fork 43
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
Try replacing Mux and WebSockets with pure HTTP.jl #241
Conversation
@ferrolho would you mind helping me test this out? I've made sure the very basic stuff like opening (and re-opening) a visualizer works, but I won't have time to do much more in the next day or two. |
Turns out it was easy to eliminate the dependency on Blink.jl entirely, so I did that. We should be able to support Julia 1.6 again. |
Thank you--that's extremely helpful! I tested this on Windows as well and verified that #234 is still fixed on this branch. I'll see if I can fix that IOError after closing the electron window and then merge this. |
Fixes #235 (by removing WebSockets.jl entirely).
Fixes #236,
I hope (by allowing us to upgrade Blink.jl to v0.12.6). Edit: Blink.jl is gone, so the problem is gone too.This PR rewrites the core web server to only use HTTP.jl, eliminating the dependencies on Mux.jl and WebSockets.jl. I'm hoping this will avoid the issues we've seen in recent versions of those packages (#234, #233), and it should allow us to benefit from the fact that HTTP.jl seems to be much more reliably updated.
We were previously using Mux.jl to handle routing the basic URLs that the meshcat javascript needs, but the HTTP.jl
Router
class works just as well. Dispatching streams to the HTTP or websocket handler is also pretty easy without using Mux.jl at all. And the actual WebSocket implementation is now provided by HTTP.jl, so we don't need WebSockets.jl at all.The downside is that we have to upgrade the Julia requirement to 1.8 due to Blink requiring WebIO which requires WebSockets.jl (which we're not actually using) which requires Julia 1.8.2.Edit: Removed Blink.jl in favor of Electron.jl to fix this (fixes #242 ).