Hi, I am currently trying to understand authoritative match in Nakama server 2.11.1 and the official Godot Engine Client.
My problem is, sometimes while developing, my match stop because of code error, nothing wrong here. But the problem is my client has no way to know that the match was stopped, and it is the same thing with a normal end of match (return nil in lua module).
So I started to look for a solution, according to the change log, version [2.3.0] - 2018-12-31
Clients that send data to an invalid match ID will now receive an uncollated error.
So I tried to send data to the match after it closed, but no error returned. Maybe my definition of valid match ID was wrong so, i tried to send data to a match with the ID “a”. No error.
Can someone explain me what am I doing wrong and what is the state of the art to check if a match is still running and how to inform the client that the match was closed in case of error or not.
So apparently an invalid match ID, is an match ID not following a common pattern.
And the Godot client didn’t handle the error.
But the server doesn’t send error when sending data to non existing Match or stopped match.
So my question is still the same, how do players know the match is still running after joining it ?
@Koop There’s no need to use bold with your message. We can all read in the community and don’t need the explicit call out to know what your question is.
So my question is still the same, how do players know the match is still running after joining it?
This is a known issue that’ll be solved as part of the next release. It’s a regression from an earlier server version where matches created via the server runtime with Lua did not send the close frame message back to game clients as a socket close event.
It’s tracked in this issue and will be part of the next release (2.12.0).
Ok thank you.
I see the issue is about run times errors.
What about when the match is closed normally, nil return, does the client suppose to get a message or should I send data to clients in my implementation before returning nil value ?
When you decide to
return nil in your own code it’s expected that you’ll broadcast a message to connected clients beforehand. This gives total flexibility over the behaviour so it’s up to you to decide what’s appropriate - some games want to send this message, some don’t.