diff --git a/com.unity.multiplayer.transport.utp/Runtime/UTPTransport.cs b/com.unity.multiplayer.transport.utp/Runtime/UTPTransport.cs index dec230a11a..ab53839f2e 100644 --- a/com.unity.multiplayer.transport.utp/Runtime/UTPTransport.cs +++ b/com.unity.multiplayer.transport.utp/Runtime/UTPTransport.cs @@ -286,6 +286,23 @@ private IEnumerator StartRelayServer(SocketTask task) #endif } + private bool AcceptConnection() + { + var connection = m_Driver.Accept(); + + if (connection != default(NetworkConnection)) + { + InvokeOnTransportEvent(NetworkEvent.Connect, + ParseClientId(connection), + NetworkChannel.Internal, + default(ArraySegment), + Time.realtimeSinceStartup); + return true; + } + + return false; + } + private bool ProcessEvent() { var eventType = m_Driver.PopEvent(out var networkConnection, out var reader); @@ -344,6 +361,7 @@ private void Update() if (m_Driver.IsCreated) { m_Driver.ScheduleUpdate().Complete(); + while(AcceptConnection() && m_Driver.IsCreated); while(ProcessEvent() && m_Driver.IsCreated); }