Skip to content

feat: MMSClient WebSocket implementation and refactor + UI Hookup.#48

Draft
Liparakis wants to merge 5 commits intoExtremelyd1:mainfrom
Liparakis:SSMP-WebSockets
Draft

feat: MMSClient WebSocket implementation and refactor + UI Hookup.#48
Liparakis wants to merge 5 commits intoExtremelyd1:mainfrom
Liparakis:SSMP-WebSockets

Conversation

@Liparakis
Copy link
Copy Markdown
Contributor

This PR adds WebSockets to the MMSClient and also splits up the components in a clean-way (Also UI hook-up)

@Liparakis Liparakis marked this pull request as draft April 10, 2026 19:55
@Liparakis
Copy link
Copy Markdown
Contributor Author

I marked this as a Draft because i want to clear up any ambiguity or edge cases that might exist. Also i might tone down the comments because they currently take up more space than the code itself.

I have also already changed the port to 6001 for Discovery in this Draft

- Refactored MmsJsonParser with defensive boundary checks and null-returns for graceful handling.
- Unified lobby codes to be nullable in the public UI models and improved connection data fallbacks.
- Mapped join parse failures to NetworkFailure and explicitly validated array structures in Lobby Queries.
- Dropped volatile enum mappings for URL arguments in favor of strict string constants.
- Cleaned up fragmented error tracking into a single _lastError state in MmsClient.
- Replaced tight-loop buffering allocations with ArrayPool<byte> on WebSocket receives.
- Forced oversized WebSocket frames to degrade gracefully instead of crashing parent tasks.
- Fixed un-declared variable and silent IP extraction failures across matchmaking components.
@Liparakis Liparakis marked this pull request as ready for review April 10, 2026 21:50
@Liparakis Liparakis marked this pull request as draft April 10, 2026 23:47
- Resolved Unity main-thread violations in MmsWebSocketHandler via SynchronizationContext.
- Fixed race conditions and lifecycle leaks in lobby session management.
- Hardened NAT hole-punching logic and Steam ID validation.
- Aggressively minimized XML documentation across the matchmaking namespace.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant