示例#1
0
            internal async Task RunAsync()
            {
                var sw = System.Diagnostics.Stopwatch.StartNew();

                while (Connected.Count == 0)
                {
                    await Task.Delay(10);

                    if (sw.Elapsed.TotalSeconds > 10)
                    {
                        Assert.Fail("Client Took Too Long To Connect");
                        break;
                    }
                }

                await Task.Delay(1000);

                var singleClient = Connected.First();

                singleClient.SendMessage("Hey?");
                await Task.Delay(100);

                singleClient.SendMessage("Anyone?");
                await Task.Delay(100);

                singleClient.SendMessage("What's this?");
                await Task.Delay(100);

                singleClient.SendMessage("What's your status?");
                await Task.Delay(10);

                singleClient.SendMessage("Greetings!!??");
                await Task.Delay(100);

                singleClient.SendMessage("Hello Client!?");

                sw = System.Diagnostics.Stopwatch.StartNew();

                Console.WriteLine($"Socket: Listening");

                while (Connected.Contains(singleClient))
                {
                    Receive();
                    await Task.Delay(100);

                    if (sw.Elapsed.TotalSeconds > 5)
                    {
                        Console.WriteLine("Socket: This all took too long - throwing an exception");
                        Assert.Fail("Socket Took Too Long");
                        break;
                    }
                }

                Console.WriteLine($"Socket: Closing connection because {Connected.Count()} Connected");

                await Task.Delay(1000);

                Close();
            }
            internal async Task RunAsync()
            {
                var sw = System.Diagnostics.Stopwatch.StartNew();

                while (Connected.Count == 0)
                {
                    await Task.Delay(10);

                    if (sw.Elapsed.TotalSeconds > 5)
                    {
                        Assert.Fail("Client Took Too Long To Connect");
                        break;
                    }
                }

                await Task.Delay(1000);

                var singleClient = Connected.First();

                singleClient.SendMessage("Hey?");
                await Task.Delay(100);

                singleClient.SendMessage("Anyone?");
                await Task.Delay(100);

                singleClient.SendMessage("What's this?");
                await Task.Delay(100);

                singleClient.SendMessage("What's your status?");
                await Task.Delay(10);

                singleClient.SendMessage("Greetings!!??");
                await Task.Delay(100);

                singleClient.SendMessage("Hello Client!?");

                sw = System.Diagnostics.Stopwatch.StartNew();

                while (Connected.Contains(singleClient))
                {
                    Receive();
                    await Task.Delay(100);

                    if (sw.Elapsed.TotalSeconds > 10)
                    {
                        Assert.Fail("Socket Took Too Long");
                        break;
                    }
                }

                await Task.Delay(1000);

                Close();
            }
        public override void SetupDoors(Level level)
        {
            var pair  = Connected.First();
            var doors = Connected.Values.ToArray();

            doorZero = !BottomHalf || InvestigateDoor(pair.Key, pair.Value);

            if (!doorZero)
            {
                doors[0].Type = DoorPlaceholder.Variant.Regular;
                doors[1].Type = DoorPlaceholder.Variant.Hidden;
            }
            else
            {
                doors[1].Type = DoorPlaceholder.Variant.Regular;
                doors[0].Type = DoorPlaceholder.Variant.Hidden;
            }
        }
            internal async Task RunAsync()
            {
                while (Connected.Count == 0)
                {
                    await Task.Delay(10);
                }

                await Task.Delay(1000);

                var singleClient = Connected.First();

                singleClient.SendMessage("Hello Client");

                await Task.Delay(1000);

                singleClient.Close();

                await Task.Delay(1000);

                Close();
            }