Phalcode / gamevault-app

Frontend for the self-hosted gaming platform for drm-free games
https://gamevau.lt
Other
304 stars 14 forks source link

Client-Side Bandwidth limits #153

Closed KairuByte closed 1 year ago

KairuByte commented 1 year ago

Is your feature request related to a problem? Please describe. Similar to any other app that downloads large amounts of data, the client should not always have free rein of all bandwidth available to it. Even if the server side is fine giving out 1gbps, the user may only want the client to use 50mbps because of other network traffic.

Describe the solution you'd like Add bandwidth limit options.

Additional context Similar to Phalcode/gamevault-backend#10 but on the client side.

Alfagun74 commented 1 year ago

Mind providing more details what exactly you want in the client? Please use the issue template.

KairuByte commented 1 year ago

Edited. Apologies, didn’t think it needed a comprehensive explanation.

Alfagun74 commented 1 year ago

Got it, I understand now. Initially, I thought you wanted to regulate the serverside bandwidth from the client side, and I was a bit puzzled about what you meant exactly. However, I really like this idea. When I was a teenager, my mother would get upset whenever I downloaded large games while she's trying to watch something on youtube. I'll definitely make sure to save you all from that. Haha!

Wh1t3Rose commented 1 year ago

I think we should also have this option serverside as an admin. For those of us sharing with multiple clients, we should be able to control how much bandwidth is allowed to be used by clients from the serverside

We can have a dropdown in the client while logged in as an admin that says "Max Client Bandwidth" with various options like "10Mbs, 50Mbs, 100Mbs, etc). Each client would be forced to respect this value server side to not go above the limit set sererside

Or make it configurable via config file on the server

Alfagun74 commented 1 year ago

@Wh1t3Rose See https://github.com/Phalcode/gamevault-backend/issues/10

Alfagun74 commented 1 year ago

I believe the simplest approach to address this, now that https://github.com/Phalcode/gamevault-backend/issues/10 has been completed, is to include a header in the client's download request, such as throttle_kbps = 5000. The server will then honor this value and deliver data at that rate. Naturally, it will also verify if this value exceeds the global speed limit and, if it does, limit it accordingly.

Alfagun74 commented 1 year ago

Implemented in Backend:

Image

Yelo420 commented 1 year ago

Implemented in Client