Example #1
0
        public async Task <int> SendMessageAsync(OicMessage request, IOicEndpoint endpoint = null)
        {
            var coapEndpoint = endpoint as OicCoapEndpoint
                               ?? throw new ArgumentException($"{nameof(endpoint)} is not of type {nameof(OicCoapEndpoint)}", nameof(endpoint));

            var message = request.ToCoapMessage();

            var baseRequest = message.Clone();

            baseRequest.Payload = null;
            _requestMessages.Add(request.RequestId, baseRequest);


            return((await _client.SendAsync(message, coapEndpoint._coapEndpoint)).Id);
        }
Example #2
0
        public async Task <OicRequestHandle> SendAsync(OicMessage message, IOicEndpoint endpoint = null)
        {
            var handle = GetHandle(message);

            if (endpoint != null)
            {
                await endpoint.Transport.SendMessageAsync(message, endpoint);
            }
            else
            {
                await Task.WhenAny(_transports.Select(t =>
                {
                    _logger?.LogDebug($"Sending message (requestId: {handle.RequestId}) to {t}");
                    return(t.SendMessageAsync(message));
                }));
            }

            return(handle);
        }
Example #3
0
 public Task <int> SendMessageAsync(OicMessage message, IOicEndpoint endpoint = null)
 {
     return(IsDisposed
         ? throw new OicException("Encdpoint Disposed")
         : MockSendMessageAsync(message));
 }