branchrust_reboot/main/rust_relay_servercancel
54 Commits over 59 Days - 0.04cph!
merge main -> rust_relay_server
merged main -> rust_relay_server
merge main -> rust_relay_server
Resolved relay startup issues, added relay.restart convar, tidied thread shutdown/restart
merge main -> rust_relay_server
merge main -> rust_relay_server
resolved websocket reconnect spam, added relay convars for managing relay state (shutdown etc)
merge main -> rust_relay_server
move away from wss (it allocates)
merge main -> rust_relay_server
Add additional logging for websocket connection
merge main -> rust_relay_server
removed dupe packet send 🙈
reverted accidental splash screen setting tweak
main -> rust_relay_server
main -> rust_relay_server merge
offset packetType by lowestUserPacket
reduced packet spam, send stringPool as dict
merged main -> rust_relay_server
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