I run volunteer video production for a remotely broadcasted event. Our participants ("users") will be running a specifically configured version of OBS Studio with the obs-websocket plugin installed. This will run a local websocket service on port 4444 on the user machines, which I am looking to access server-side for stats monitoring/etc.

Most of our users will not be able to port forward. They can connect to any web services on their end. On our end, we have a fixed IP server running NodeCG and other services.

Are there existing tools that can manage multiple proxied websocket connections by having software on user machines initiate a connection to a service hosted on our end and have that software tunnel their local ports?

As an example, I can send the following request to a local obs-websockets instance:

{ "message-id": "1", "request-type": "GetStats" }


{ "message-id": "1", "stats": { /* Stats */ } }

I would like to be able to send a request to a central service on our end looking something like this:

  "tunnel-id": "USER-ID-HERE",
  "data": { "message-id": "1", "request-type": "GetStats" }

and receive back a response from the tunneled service:

  "tunnel-id": "USER-ID-HERE",
  "data": { "message-id": "1", "stats": { /* Stats */ } }

The protocol is just an example, and it doesn't have to be specifically websocket based (although a native node-js solution would obviously be very easy to work with). SSH port tunneling is not an option as this only allows a one to one port tunnel.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.