v1.1.0
- Improved relay throughput by reducing allocations across host, client, receive, and broadcast hot paths.
- Added relay backpressure handling to keep slow or overloaded recipients from degrading room performance.
- Made unreliable relay traffic more robust by dropping payloads that are too large or when a recipient's reliable queue is already backed up.
- Added protection for reliable relay queues by disconnecting recipients whose reliable backlog grows beyond the configured threshold.
- Optimised single-recipient and broadcast relay paths, including special handling for one-client broadcasts.
- Reworked relay frame creation to use LiteNetLib pooled packets where possible, stack allocation for small frames, and shared array pooling for larger frames.
- Avoided unnecessary payload copies by reading incoming packets as spans and writing relay frames directly into the target buffers.
- Reduced allocation pressure when relaying client-to-host and host-to-client data.
- Introduced a reusable relay backpressure policy with clear thresholds for dropping unreliable traffic and disconnecting reliable recipients.
- Added safeguards for oversized unreliable relay payloads before attempting to send them.
- Added handling for LiteNetLib
TooBigPacketExceptionso rejected relay payloads are logged cleanly instead of flowing through the generic send failure path. - Snapshot broadcast recipients before sending, reducing lock contention while preserving consistent recipient handling.
- Added log messages for dropped oversized unreliable payloads.
- Added log messages for unreliable payloads dropped due to reliable queue backpressure.
- Added log messages when recipients are disconnected because their reliable relay queue is backed up.
- Added log messages when LiteNetLib rejects a relay payload as too large.
Full Changelog: v1.0.0...v1.1.0