internal void HandleRequestNoResponse(IResonanceTransporter transporter, ResonanceMessage <CalculateRequest> message) { transporter.SendResponse(new CalculateResponse() { Sum = message.Object.A + message.Object.B }, message.Token); }
protected async override void OnMessageReceived(ResonanceMessage message) { if (InSession) { await RemoteClient?.SendAsync(message); } }
protected async override void OnResponseReceived(ResonanceMessage response) { if (InSession) { await RemoteClient?.SendResponseAsync(response); } }
protected async override void OnRequestReceived(ResonanceMessage request) { if (InSession) { await RemoteClient?.SendRequestAsync(request); } }
private async void OnJoinSessionRequest(IResonanceTransporter transporter, ResonanceMessage <JoinSessionRequest> request) { if (await ShowQuestionMessage($"Client {request.Object.ClientID} wants to create a session. Confirm?")) { InSession = true; SelectedClient = request.Object.ClientID; await transporter.SendResponseAsync(new JoinSessionResponse(), request.Token); } else { await transporter.SendErrorResponseAsync("No thanks.", request.Token); } }
private void OnNotifyAvailableClientsRequest(IResonanceTransporter transporter, ResonanceMessage <NotifyAvailableClientsRequest> request) { InvokeUI(() => { ConnectedClients.Clear(); foreach (var client in request.Object.Clients) { ConnectedClients.Add(client); } }); }
private void OnLeaveSessionRequest(IResonanceTransporter transporter, ResonanceMessage <LeaveSessionRequest> request) { Logger.LogWarning($"Session lost: {request.Object.Reason}"); InSession = false; }
private void CalculateRequest_Standard_Handler(IResonanceTransporter transporter, ResonanceMessage <CalculateRequest> request) { transporter.SendResponseAsync(new CalculateResponse() { Sum = request.Object.A + request.Object.B }, request.Token); }
internal async Task HandleRequestAsyncNoResponse(IResonanceTransporter transporter, ResonanceMessage <CalculateRequest> message) { await Task.Delay(100); transporter.SendResponse(new CalculateResponse() { Sum = message.Object.A + message.Object.B }, message.Token); }
internal Task HandleMessageAsyncWithTransporter(IResonanceTransporter transporter, ResonanceMessage <CalculateRequest> message) { _receivedRequest = message.Object; _receivedTransporter = transporter; return(Task.FromResult(true)); }
internal Task HandleMessageAsyncNoTransporter(ResonanceMessage <CalculateRequest> message) { _receivedRequest = message.Object; return(Task.FromResult(true)); }
internal void HandleMessageWithTransporter(IResonanceTransporter transporter, ResonanceMessage <CalculateRequest> message) { _receivedRequest = message.Object; _receivedTransporter = transporter; }
internal void HandleMessageNoTransporter(ResonanceMessage <CalculateRequest> message) { _receivedRequest = message.Object; }
/// <summary> /// Handles clients "leave session" request. /// </summary> /// <param name="transporter">The transporter.</param> /// <param name="request">The request.</param> private async void OnClientLeaveSessionRequest(IResonanceTransporter transporter, ResonanceMessage <LeaveSessionRequest> request) { ResonanceTcpClient client = transporter as ResonanceTcpClient; if (client.InSession) { Logger.LogWarning($"Client {client.ClientID} has closed the session."); client.InSession = false; client.RemoteClient.InSession = false; await client.RemoteClient.SendAsync(new LeaveSessionRequest() { Reason = $"{client.RemoteClient.ClientID} has left the session" }); client.RemoteClient.RemoteClient = null; client.RemoteClient = null; UpdateClientsList(); } }
/// <summary> /// Initializes the adapter from an existing offer request. /// The adapter role with be <see cref="WebRTCAdapterRole.Accept"/> and response will be sent upon connection. /// </summary> /// <param name="request">The offer request.</param> /// <returns></returns> public WebRTCIceServersBuilder WithOfferRequest(ResonanceMessage <WebRTCOfferRequest> request) { return(WithOfferRequest(request.Object, request.Token)); }