/// <summary> /// Start listening for incoming connection attempts. /// </summary> /// <returns>Returns completed if started up correctly.</returns> public override UniTask ListenAsync() { try { if (!_enetInitialized) { if (InitializeEnet()) { Debug.Log("Ignorance successfully initialized ENET."); _enetInitialized = true; } else { Debug.LogError("Ignorance failed to initialize ENET! Cannot continue."); return(UniTask.CompletedTask); } } _server = new IgnoranceServer(Config, this); // start server up and listen for connections _server.Start(); _listenCompletionSource = AutoResetUniTaskCompletionSource.Create(); return(_listenCompletionSource.Task); } catch (Exception ex) { return(UniTask.FromException(ex)); } }
/// <summary> /// Shutdown the transport and disconnect server and clients. /// </summary> public override void Disconnect() { Config.PacketCache = new byte[Config.MaxPacketSizeInKb * 1024]; _listenCompletionSource?.TrySetResult(); _enetInitialized = false; _server?.Shutdown(); _server = null; Library.Deinitialize(); }