Skip to content

Improve network stack#876

Open
jcelerier wants to merge 11 commits into
masterfrom
feature/remove-websocketpp
Open

Improve network stack#876
jcelerier wants to merge 11 commits into
masterfrom
feature/remove-websocketpp

Conversation

@jcelerier

@jcelerier jcelerier commented Mar 24, 2026

Copy link
Copy Markdown
Member
  • make sure all tests pass.
  • ipv6
  • TLS support
  • emscripten WS back-end
  • fix boost.json requiring linking on windows ?

OSCQuery publication / exploration examples seem to work fine and are compatible with the previous version.

@jcelerier jcelerier changed the title feature/remove websocketpp Improve network stack Mar 24, 2026
@jcelerier

jcelerier commented Mar 24, 2026

Copy link
Copy Markdown
Member Author

@x37v if you want to review / test this version with your stack. I need to do a bit more testing but we now have:

  • a much more modern (and consistently maintained) websocket backend, unlike websocketpp which has been abandoned for years: one commit in the last five years.
  • I tried adding ipv6 support wherever it was relevant - things work locally but so far I only tested this part under linux, need to test on windows and mac, also with various clients such as ESP32
  • the websocket implementation for oscquery is more flexible and also now supports using [socket.io](https://socket.io/ as backend) (@ogauthiersat @blueyeti) ; this opens interesting use cases with the "rooms" concept of socket.io.

@ogauthiersat

Copy link
Copy Markdown

@jcelerier I managed to build this branch into my score dev environment. However, I had to comment out all calls to boost::asio::ip::v6_only and disable vst/vst3/clap plugins that were not finding websocket_simple_client.

/home/ogauthier/git/github.com/ossia/score/3rdparty/libossia/src/ossia/protocols/socketio/socketio_server.cpp:472:42: error: no member named 'v6_only' in namespace 'boost::asio::ip'
  472 |   m_acceptor.set_option(boost::asio::ip::v6_only(false), ec);
/home/ogauthier/git/github.com/ossia/score/src/clappuppet/clappuppet.cpp:190:15: error: no type named 'websocket_simple_client' in namespace 'ossia::net'; did you mean 'websocket_simple_client_beast'?
  190 |   ossia::net::websocket_simple_client socket{{.url = "ws://127.0.0.1:37589"}, ctx};

I tested OSCQuery device, gives the same results under this branch or with release 3.8.1 :

  • Add OSCQuery device pointing at host ws://127.0.0.1:9999
  • OSCQuery device appears empty
  • Right-click QSCQuery device, Refresh namespace
  • OSCQuery device is populated normally
  • Add String process
  • String process does not appear in QSCQuery device tree
  • Right-click QSCQuery device, Refresh namespace
  • String process is available in OSCQuery tree, and modify value works

I confirm that user agent is different in the websocket setup header :

HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Accept: WHdzoMgsjebbUf6MTfY4iCsB6aQ=
Server: Boost.Beast/359

3.8.1 :

HTTP/1.1 101 Switching Protocols
Connection: Upgrade
Sec-WebSocket-Accept: RNBbeBhCRzVA8/FAE9I48Lo7LWA=
Server: WebSocket++/0.8.3-dev
Upgrade: websocket

Is there a way to test socket.io from Score at the moment ?

@x37v

x37v commented Mar 25, 2026

Copy link
Copy Markdown
Contributor

@jcelerier sorry for the slow response, pretty busy with the latest release and various tasks around that but I will get to this.

@jcelerier

Copy link
Copy Markdown
Member Author

thanks for the review @ogauthiersat ! and no worries @x37v, the branch still needs a fair bit of polishing ::)

@jcelerier jcelerier temporarily deployed to Apple Certificate June 1, 2026 23:57 — with GitHub Actions Inactive
@jcelerier jcelerier temporarily deployed to Apple Certificate June 1, 2026 23:57 — with GitHub Actions Inactive
@jcelerier jcelerier temporarily deployed to Apple Certificate June 1, 2026 23:57 — with GitHub Actions Inactive
@jcelerier jcelerier force-pushed the feature/remove-websocketpp branch from 4337901 to 450ea74 Compare June 2, 2026 00:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants