Skip to content

Commit

Permalink
refactor: removing disconnect method from player (MirageNet#688)
Browse files Browse the repository at this point in the history
* refactor: removing disconnect method from player

- disconnect just passthrough to connection.
- new concept: players can no longer be disconnected, but their connection can be

BREAKING CHANGE: Disconnect replaced with Connection.Disconnect

* fixing uses in Mirage

* updating uses in authenticators
  • Loading branch information
James-Frowen committed Mar 13, 2021
1 parent 5e1c4ba commit e1daf92
Show file tree
Hide file tree
Showing 6 changed files with 8 additions and 17 deletions.
4 changes: 2 additions & 2 deletions Assets/Mirage/Authenticators/BasicAuthenticator.cs
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ public void OnAuthRequestMessage(INetworkPlayer conn, AuthRequestMessage msg)
public IEnumerator DelayedDisconnect(INetworkPlayer conn, float waitTime)
{
yield return new WaitForSeconds(waitTime);
conn.Disconnect();
conn.Connection?.Disconnect();
}

public void OnAuthResponseMessage(INetworkPlayer conn, AuthResponseMessage msg)
Expand All @@ -99,7 +99,7 @@ public void OnAuthResponseMessage(INetworkPlayer conn, AuthResponseMessage msg)
{
logger.LogFormat(LogType.Error, "Authentication Response: {0}", msg.Message);
// disconnect the client
conn.Disconnect();
conn.Connection?.Disconnect();
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion Assets/Mirage/Authenticators/TimeoutAuthenticator.cs
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ IEnumerator BeginAuthentication(INetworkPlayer conn)
if (logger.LogEnabled()) logger.Log($"Authentication Timeout {conn}");

pendingAuthentication.Remove(conn);
conn.Disconnect();
conn.Connection?.Disconnect();
}
}
}
Expand Down
2 changes: 0 additions & 2 deletions Assets/Mirage/Runtime/INetworkPlayer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -104,8 +104,6 @@ public interface INetworkPlayer : IMessageHandler, IVisibilityTracker, IObjectOw
EndPoint Address { get; }
object AuthenticationData { get; set; }

void Disconnect();

IConnection Connection { get; }
}
}
2 changes: 1 addition & 1 deletion Assets/Mirage/Runtime/NetworkClient.cs
Original file line number Diff line number Diff line change
Expand Up @@ -241,7 +241,7 @@ internal void OnAuthenticated(INetworkPlayer conn)
/// </summary>
public void Disconnect()
{
Connection?.Disconnect();
Connection?.Connection?.Disconnect();
}

/// <summary>
Expand Down
11 changes: 2 additions & 9 deletions Assets/Mirage/Runtime/NetworkPlayer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -95,13 +95,6 @@ public NetworkPlayer(IConnection connection)
RegisterHandler<NotifyAck>(msg => { });
}

/// <summary>
/// Disconnects this connection.
/// </summary>
public virtual void Disconnect()
{
connection.Disconnect();
}

private static NetworkMessageDelegate MessageHandler<T>(Action<INetworkPlayer, T> handler)
{
Expand Down Expand Up @@ -309,7 +302,7 @@ internal void TransportReceive(ArraySegment<byte> buffer, int channelId)
catch (Exception ex)
{
logger.LogError("Closed connection: " + this + ". Invalid message " + ex);
Disconnect();
Connection?.Disconnect();
}
}
}
Expand Down Expand Up @@ -432,7 +425,7 @@ internal void ReceiveNotify(NotifyPacket notifyPacket, NetworkReader networkRead
// sequence is so far out of bounds we can't save, just kick him (or her!)
if (Math.Abs(sequenceDistance) > WINDOW_SIZE)
{
Disconnect();
connection?.Disconnect();
return;
}

Expand Down
4 changes: 2 additions & 2 deletions Assets/Mirage/Runtime/NetworkServer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -148,7 +148,7 @@ public void Disconnect()
var connectionscopy = new HashSet<INetworkPlayer>(connections);
foreach (INetworkPlayer conn in connectionscopy)
{
conn.Disconnect();
conn.Connection?.Disconnect();
}
if (Transport != null)
Transport.Disconnect();
Expand Down Expand Up @@ -375,7 +375,7 @@ async UniTaskVoid ConnectionAcceptedAsync(INetworkPlayer conn)
// Transport can't do that)
if (connections.Count >= MaxConnections)
{
conn.Disconnect();
conn.Connection?.Disconnect();
if (logger.WarnEnabled()) logger.LogWarning("Server full, kicked client:" + conn);
return;
}
Expand Down

0 comments on commit e1daf92

Please sign in to comment.