private async Task OrchestrateServerMode()
        {
            var numPlayers = await PromptForNumberOfPlayers();

            // first initialize the server
            var socketServer = new SocketServerNetworkProvider(8080);
            var server       = new MultiPlayerServer(socketServer);

            await QueueAction(() => LayoutRoot.Add(new MultiPlayerServerInfoControl(server)
            {
                Width = 50
            }).DockToRight().FillVertically()).AsAwaitable();

            this.OnDisposed(server.Dispose);
            var deathmatch = new Deathmatch(new MultiPlayerContestOptions()
            {
                MaxPlayers = numPlayers, Server = server
            });


            deathmatch.OrchestrationFailed.SubscribeOnce((ex) =>
            {
                QueueAction(() =>
                {
                    Dialog.ShowMessage("Fatal error: " + ex.ToString().ToRed()).Then(Cleanup);
                });
            });

            await deathmatch.Start();

            // then connect to it as a client
            await ConnectToRemoteServer(socketServer.ServerInfo);
        }
Exemple #2
0
        public async Task TestRequestResponseWithSockets()
        {
            var socketServer = new SocketServerNetworkProvider(8080);
            var server       = new MultiPlayerServer(socketServer);
            var client       = new MultiPlayerClient(new SocketClientNetworkProvider());

            await TestRequestResponse(server, socketServer.ServerInfo, client);
        }
Exemple #3
0
        public async Task TestDeathmatchWithSockets()
        {
            var socketServer = new SocketServerNetworkProvider(8080);
            var server       = new MultiPlayerServer(socketServer);
            var client1      = new MultiPlayerClient(new SocketClientNetworkProvider());
            var client2      = new MultiPlayerClient(new SocketClientNetworkProvider());

            await TestDeathmatch(server, socketServer.ServerInfo, client1, client2, 500);
        }