public async Task <GamestreamSession> StartGamestreamAsync() { var startMessage = new GamestreamStartMessage() { Configuration = GamestreamConfiguration.GetStandardConfig(), ReQueryPreviewStatus = false }; var startedMessageTask = MessageExtensions.WaitForMessageAsync <GamestreamStateStartedMessage, BroadcastErrorMessage, BroadcastBaseMessage>( _transport, TimeSpan.FromSeconds(2), () => _transport.SendAsync(startMessage)); var initializingMessageTask = MessageExtensions.WaitForMessageAsync <GamestreamStateInitializingMessage, BroadcastErrorMessage, BroadcastBaseMessage>(_transport, TimeSpan.FromSeconds(10)); await Task.WhenAll(initializingMessageTask, startedMessageTask); var initializingMessage = initializingMessageTask.Result; var startedMessage = startedMessageTask.Result; if (initializingMessage.SessionId != startedMessage.SessionId) { throw new GamestreamException("Invalid session received.", GamestreamError.General); } return(new GamestreamSession(initializingMessage.TcpPort, initializingMessage.UdpPort)); }
public void TestGamestreamStart() { string json = ResourcesProvider.GetString("gamestream_start_stream.json", ResourceType.Json); var origMsg = DeserializeJson <GamestreamStartMessage>(json); var msg = new GamestreamStartMessage() { ReQueryPreviewStatus = false, Configuration = GamestreamConfiguration.GetStandardConfig() }; // TODO: check why this isn't working like expected Assert.Equal(JsonConvert.SerializeObject(origMsg), JsonConvert.SerializeObject(msg)); }