in DataStreamerAppServiceUWPCommSample/DataStreamerAppServiceUWPCommSample/App.xaml.cs [132:179]
private async void OnAppServiceRequestReceived(AppServiceConnection sender, AppServiceRequestReceivedEventArgs args)
{
// Get a deferral because we use an awaitable API below to respond to the message
// and we don't want this call to get cancelled while we are waiting.
var messageDeferral = args.GetDeferral();
ValueSet message = args.Request.Message;
ValueSet returnData = new ValueSet();
string command = message["Command"] as string;
try
{
switch (command)
{
case "Connect":
DataStreamerConnection = sender;
returnData.Add("Result", "OK");
await args.Request.SendResponseAsync(returnData);
IsConnectedToDataStreamerAppService = true;
break;
case "Read":
//Receive data from Data Streamer and show it in UWP Application
returnData = await ReadDataAsync();
break;
case "Write":
//Send data to Data Streamer
await WriteDataAsync(message["Data"] as string);
break;
default:
{
returnData.Add("Status", "Fail: unknown command");
await args.Request.SendResponseAsync(returnData);
break;
}
}
}
catch (Exception e)
{
Debug.WriteLine($"Exception while sending the response : {e.Message}");
}
finally
{
// Complete the deferral so that the platform knows that we're done responding to the app service call.
// Note for error handling: this must be called even if SendResponseAsync() throws an exception.
messageDeferral.Complete();
}
}