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); }
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); }
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); }