// Start is called before the first frame update void Start() { Debug.Log(QuicheVersion.GetVersion()); QuicheDebug.EnableDebugLogging((line, argp) => { Debug.Log(line); }); var localAddress = IPAddress.Parse(localIpString); var localEP = new IPEndPoint(localAddress, localPort); udpClient = new UdpClient(localEP); var config = new QuicheConfig(QuicheVersion.QUICHE_PROTOCOL_VERSION); byte[] protos = Encoding.ASCII.GetBytes("\x05hq-24\x05hq-23\x08http/0.9"); config.LoadCertChainFromPemFile($"{Application.dataPath}/Server/cert.crt"); config.LoadPrivKeyFromPemFile($"{Application.dataPath}/Server/cert.key"); config.SetApplicationProtos(protos); config.SetIdleTimeout(5000); config.SetMaxPacketSize(QuicheClient.MAX_DATAGRAM_SIZE); config.SetInitialMaxData(10000000); config.SetInitialMaxStreamDataBidiLocal(1000000); config.SetInitialMaxStreamDataBidiRemote(1000000); config.SetInitialMaxStreamDataUni(1000000); config.SetInitialMaxStreamsBidi(100); config.SetInitialMaxStreamsUni(100); config.SetDisableActiveMigration(true); if (earlyData) { config.EnableEarlyData(); } quiche = new QuicheListener(config); }
void OnDestroy() { foreach (var key in clients.Keys) { var client = clients[key]; client.Connection.Dispose(); } clients.Clear(); if (quiche != null) { quiche.Dispose(); quiche = null; } if (udpClient != null) { udpClient.Dispose(); udpClient = null; } }