mirror of
https://github.com/space-wizards/RobustToolbox.git
synced 2026-02-14 19:29:36 +01:00
Add debug code to slow down transfer connections
This commit is contained in:
@@ -11,15 +11,18 @@ namespace Robust.Client.Network.Transfer;
|
||||
internal sealed class ClientTransferImplWebSocket : TransferImplWebSocket
|
||||
{
|
||||
private readonly (string EndpointUrl, byte[] Key) _info;
|
||||
private readonly bool _slow;
|
||||
|
||||
public ClientTransferImplWebSocket(
|
||||
(string EndpointUrl, byte[] Key) info,
|
||||
ISawmill sawmill,
|
||||
BaseTransferManager parent,
|
||||
INetChannel channel)
|
||||
INetChannel channel,
|
||||
bool slow)
|
||||
: base(sawmill, parent, channel)
|
||||
{
|
||||
_info = info;
|
||||
_slow = slow;
|
||||
}
|
||||
|
||||
public override async Task ClientInit(CancellationToken cancel)
|
||||
@@ -28,6 +31,9 @@ internal sealed class ClientTransferImplWebSocket : TransferImplWebSocket
|
||||
clientWs.Options.SetRequestHeader(KeyHeaderName, Convert.ToBase64String(_info.Key));
|
||||
clientWs.Options.SetRequestHeader(UserIdHeaderName, Channel.UserId.ToString());
|
||||
|
||||
if (_slow)
|
||||
await Task.Delay(2000, cancel);
|
||||
|
||||
await clientWs.ConnectAsync(new Uri(_info.EndpointUrl), cancel);
|
||||
|
||||
WebSocket = clientWs;
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Threading.Tasks;
|
||||
using Robust.Shared;
|
||||
using Robust.Shared.Asynchronous;
|
||||
using Robust.Shared.Configuration;
|
||||
using Robust.Shared.Log;
|
||||
using Robust.Shared.Network;
|
||||
using Robust.Shared.Network.Messages.Transfer;
|
||||
@@ -12,6 +14,7 @@ namespace Robust.Client.Network.Transfer;
|
||||
internal sealed class ClientTransferManager : BaseTransferManager, ITransferManager
|
||||
{
|
||||
private readonly IClientNetManager _netManager;
|
||||
private readonly IConfigurationManager _cfg;
|
||||
private BaseTransferImpl? _transferImpl;
|
||||
|
||||
public event Action? ClientHandshakeComplete;
|
||||
@@ -19,10 +22,12 @@ internal sealed class ClientTransferManager : BaseTransferManager, ITransferMana
|
||||
internal ClientTransferManager(
|
||||
IClientNetManager netManager,
|
||||
ILogManager logManager,
|
||||
ITaskManager taskManager)
|
||||
ITaskManager taskManager,
|
||||
IConfigurationManager cfg)
|
||||
: base(logManager, NetMessageAccept.Client, taskManager)
|
||||
{
|
||||
_netManager = netManager;
|
||||
_cfg = cfg;
|
||||
}
|
||||
|
||||
public Stream StartTransfer(INetChannel channel, TransferStartInfo startInfo)
|
||||
@@ -48,7 +53,12 @@ internal sealed class ClientTransferManager : BaseTransferManager, ITransferMana
|
||||
BaseTransferImpl impl;
|
||||
if (message.HttpInfo is { } httpInfo)
|
||||
{
|
||||
impl = new ClientTransferImplWebSocket(httpInfo, Sawmill, this, message.MsgChannel);
|
||||
impl = new ClientTransferImplWebSocket(
|
||||
httpInfo,
|
||||
Sawmill,
|
||||
this,
|
||||
message.MsgChannel,
|
||||
_cfg.GetCVar(CVars.TransferArtificialDelay));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -441,6 +441,12 @@ namespace Robust.Shared
|
||||
public static readonly CVarDef<int> TransferStreamLimit =
|
||||
CVarDef.Create("transfer.stream_limit", 10, CVar.SERVERONLY);
|
||||
|
||||
/// <summary>
|
||||
/// Artificially delay transfer operations to simulate slow network. Debug option.
|
||||
/// </summary>
|
||||
internal static readonly CVarDef<bool> TransferArtificialDelay =
|
||||
CVarDef.Create("transfer.artificial_delay", false);
|
||||
|
||||
/**
|
||||
* SUS
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user