branchrust_reboot/main/rust_relay_servercancel
32 Commits over 28 Days - 0.05cph!
merged main -> rust_relay_server
brought back tuple param for UploadStringPoolToRelayAsync lol
Upload JSON instead of pair array in UploadStringPoolToRelayAsync
Reduced timeout on HttpClient, added enabled checking to upload paths
don't failover on map upload fail
Added failover, various optimizations
moved packet AddReference
Updated WebSocketSharp to not mutate packet data
merged main -> rust_relay_server
pre merge (resolved packet sending issue)
merge main -> rust_server_relay
Various tweaks to Rust Relay config and transport
Removed UniTask (it's bad), moved time cache to Network thread AGAIN (thanks multithreading), removed frameNo ref (no thread safe way for me to access), added markers back, various simplifications
removed introduced allocations
moved frameNo+serverTs to NetWrite (main thread set)
naming conventions, small tweaks
Reduced PacketArrayPool's length to the max value, reworked GetHashCode, removed unneeded second Close in ResetSocket, Use GameManifest.Current instead of loading from disk again
moved relay send thread start to first packet enqueue, implemented missing Equals and GetHashCode methods
RelayQueueItem now IEquatable, removed SocketLock as we're now running sync
Removed GC alloc from packet send, added custom WebSocketSharp implementation that doesn't allocate on send, moved packet relay layer to thread
add packet ref, tweaked array pool size
Now sending packets over websocket, sending map via StreamContent, removed reliance on Time.frameCount (potential threading errors)
Added frame marker with magic length delimiter "RRTS" (Rust Relay Time Stamp) to segregate from real packets
Added packet count flushing
added RustRelay ArrayPool to print_arraypool
removed basically every allocation. pool all the things
added packet batching and AuthToken to sent packets
merged main -> main/rust_relay_server
Added Packet relay layer + convars, Editor tool for exporting entire prefab folders to GLB