This repository has been archived by the owner on Aug 21, 2024. It is now read-only.
Fixed issues with audio/video systems and gameserver shutdown. #5126
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Gameservers were including the disconnecting user in their list of activeUsers, which would cause them to
never shut down. For local development, added
engineStarted = false
as part of shutdown so that they canbe started anew.
MediaStreamSystem was only being started by initializeRealtimeSystems, which was only ever called by world
servers. Moved its inclusion in startup to initializeMediaServerSystems.
Updated Authorization handler. Previously, it was looking for an accessToken and userId on incoming data, but doing
nothing with the token. Sometimes the client wouldn't have a resolved userId when it made that call, leading
to no Authorization and the process hanging. Removed userId from the call, and now the user is fetched by
authenticating the token.
Fixed some issues that came about from the inclusion of the 'media' client. Since it doesn't have a socket or media value,
references to client.socket!.emit or client.media[whatever] would throw errors - now checking that client.socket is not null.
Also fixed problem in sendCurrentProducers where encountering any client that didn't have media to send or didn't have a
socket would kill iterating over all the clients.
Added a script 'start-all-docker.sh' that tries to start all four local Docker services.
Simplified some boolean comparisons.
Checklist
npm run check
npm run lint
npm run test:packages
npm run build-client
References
References to pertaining issue(s)
QA Steps
git checkout pr_branch_name
npm install
npm run dev-reinit
npm run dev
List any additional steps required to QA the changes of this PR, as well as any supplemental images or videos.
Reviewers
Reviewers for this PR