Websocket client in Julia (how to)

Websockets.jl seems to be a server side implementation only. On the client side, I’ve found the following DandelionWebSockets.jl. Is this the recommended way to listen and work with web-sockets in Julia? If not, what are the alternatives? I want to fill a Julia array with certain parsed text objects every time a message is pushed through the web-socket. Any example code on how to do this would be appreciated.

Hi!

I’m the original author of DandelionWebSockets.jl. It’s not under active development, but a few volunteers have been making an effort to update it to Julia 0.6. I’m hoping someone will fork it, and keep it under active maintenance, but I wouldn’t count on DandelionWebSockets.jl being actively maintained right now.

Erik

Quick update: DandelionWebSockets is again under active development and maintenance.

1 Like

Very cool to hear. Do you have any plans to merge this effort with JuliaWeb’s Websockets.jl?

It’s not something we’ve discussed, but it’s a definite possibility. Right now I’m focusing on covering as much as possible of the specification.

Btw, HTTP.jl now has capability to operate as both a WebSocket client and a WebSocket server.

https://github.com/JuliaWeb/HTTP.jl/blob/master/test/WebSockets.jl

3 Likes

Wow, HTTP also have very few dependencies as I can see, nice!

We now have three options for client side websockets, which can only be good:

Thanks to a pull request from EricForgy and Sam o Connor, WebSockets.jl can connect through either Http.jl or HttpServer.jl.

1 Like

Great work @hustf getting that POC into shape :muscle:

I don’t know if everyone agrees quite yet, but a few of us hope to see a general migration away from HttpServer.jl to HTTP.jl so this helps people relying on WebSockets make the switch.

Thanks, Eric. I havent figured out how to do logging properly yet with http.jl, so I kind of hope somebody will merge the necessary prs on the httpserver side of things too. Httpserver will never become a full fledged server without some brave changes that are possible with less consercatism, but it is still useful for local work.

For example, I hope to test driving Simmetri https://support.simmetri.com/hc/en-us and Lua through websockets. If I get that far, the aerodynamic force calculation will be from Julia while the rest is Simmetri.