Add MainHUD gameplay UI, net handshake updates, and server maintenance mode.
Introduce UiManager/MainHUD prefab flow, strengthen GameNet/WsClient, and add AIServer maintenance endpoint support. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -38,6 +38,7 @@ namespace HotUpdate.Net
|
||||
public event Action OnConnected;
|
||||
public event Action<string> OnDisconnected;
|
||||
public event Action<string> OnMessage;
|
||||
public event Action<int> OnReconnecting;
|
||||
|
||||
public bool AutoReconnect { get; set; } = true;
|
||||
public float KeepAliveSeconds { get; set; } = 20f;
|
||||
@@ -50,6 +51,20 @@ namespace HotUpdate.Net
|
||||
_ = ConnectInternalAsync();
|
||||
}
|
||||
|
||||
/// <summary>立刻断开并重新连接(重置退避计数)。</summary>
|
||||
public void ForceReconnect()
|
||||
{
|
||||
if (string.IsNullOrEmpty(_url)) return;
|
||||
_manualClose = false;
|
||||
AutoReconnect = true;
|
||||
_reconnectAttempt = 0;
|
||||
SafeCancel();
|
||||
try { _ws?.Dispose(); } catch { /* ignore */ }
|
||||
_ws = null;
|
||||
State = WsState.Disconnected;
|
||||
_ = ConnectInternalAsync();
|
||||
}
|
||||
|
||||
public void SendText(string text)
|
||||
{
|
||||
if (string.IsNullOrEmpty(text)) return;
|
||||
@@ -119,6 +134,7 @@ namespace HotUpdate.Net
|
||||
_reconnectAttempt++;
|
||||
int delayMs = Math.Min(30000, 1000 * (1 << Math.Min(5, _reconnectAttempt)));
|
||||
Debug.Log($"[WsClient] reconnect in {delayMs}ms attempt={_reconnectAttempt}");
|
||||
OnReconnecting?.Invoke(_reconnectAttempt);
|
||||
try
|
||||
{
|
||||
await Task.Delay(delayMs, CancellationToken.None);
|
||||
|
||||
Reference in New Issue
Block a user