You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Is your feature request related to a problem? Please describe.
I am hosting a game that gets exposed to the Internet by Quilkin using the standard sidecar pattern on a generic k8s, with no Agones involved (yet?).
I happen to need to know the real client IP specific players use to connect to the game at a given moment.
This is far from easy at the moment since the game server only sees Quilkin's own IP. If I'm not mistaken, this IP is always 127.0.0.1 (due to the sidecar) for each players, but client port differs for each session.
Describe the solution you'd like
A /sessions API endpoint of sorts that would return currently active sessions with i.e.:
The real Client IP & Client Port, which in my case would be the player's to Quilkin
The client port (and possibly client IP?) Quilkin allocates to that session and uses to connect to the endpoint (game in my case)
would let me map the latter to the former directly from the game.
The endpoint's IP and port Quilkin is proxying the client to (I wouldn't have much use for this myself having only one endpoint configured, but I suppose this could be useful otherwise)
I am not quite sure which format to use to return data would be optimal, but a simple JSON would likely work perfectly for me.
That endpoint may also be useful to troubleshoot specific sessions, and maybe provide additional session-specific data (i.e. lifetime, time since last packet transited or other metrics Quilkin might collect in the background).
Describe alternatives you've considered
N/A, though I am very much open to other solutions!
Additional context
Just in case, my current Quilkin config is as follow:
This where I scope creep this feature a little bit and ask, instead of having dedicated endpoints for each kind of data users are interested in querying, what if we instead had a GraphQL endpoint, and we merged this with /config? That would also be more useful for your use-case where you could subscribe to sessions, and then you'd receive session data as it becomes available in Quilkin, rather than needing to repeatedly poll and search for new information yourself.
I knew I was going to have to learn GraphQL one day 😄 runs off to read docs
Yeah, this makes a lot of sense, and it's expandable over time. We can put config info in here, session info, and potentially more -- and it can change depending on mode, since the endpoint has built in discover ability. Yeah, count me as sold.
I do wonder if /config is the right endpoint name (/graphql ?), but that's minor detail.
@XAMPPRocky got a favourite Rust + GraphQL library?
Hello! I'm filling this issue as per my conversation with Mark Mandel on Discord.
Is your feature request related to a problem? Please describe.
I am hosting a game that gets exposed to the Internet by Quilkin using the standard sidecar pattern on a generic k8s, with no Agones involved (yet?).
I happen to need to know the real client IP specific players use to connect to the game at a given moment.
This is far from easy at the moment since the game server only sees Quilkin's own IP. If I'm not mistaken, this IP is always 127.0.0.1 (due to the sidecar) for each players, but client port differs for each session.
Describe the solution you'd like
A
/sessions
API endpoint of sorts that would return currently active sessions with i.e.:would let me map the latter to the former directly from the game.
I am not quite sure which format to use to return data would be optimal, but a simple JSON would likely work perfectly for me.
That endpoint may also be useful to troubleshoot specific sessions, and maybe provide additional session-specific data (i.e. lifetime, time since last packet transited or other metrics Quilkin might collect in the background).
Describe alternatives you've considered
N/A, though I am very much open to other solutions!
Additional context
Just in case, my current Quilkin config is as follow:
And the container declaration in my kube manifest, alongside the game's container:
Some more context is available in the Discord conversation linked at the top, but I am of course ready to provide more details if necessary :)
The text was updated successfully, but these errors were encountered: