public IMqttChannelAdapter CreateClientAdapter(IMqttClientOptions options) { if (options == null) { throw new ArgumentNullException(nameof(options)); } switch (options.ChannelOptions) { case MqttClientTcpOptions tcpOptions: { var endpoint = new DnsEndPoint(tcpOptions.Server, tcpOptions.GetPort()); var tcpConnection = new TcpConnection(endpoint); var writer = new SpanBasedMqttPacketWriter(); var formatter = new MqttPacketFormatterAdapter(options.ProtocolVersion, writer); return(new MqttConnectionContext(formatter, tcpConnection)); } default: { throw new NotSupportedException(); } } }
public async Task OnConnectedAsync(ConnectionContext connection) { try { var writer = new SpanBasedMqttPacketWriter(); var formatter = new MqttPacketFormatterAdapter(writer); var context = new MqttConnectionContext(formatter, connection); Context.TrySetResult(context); await ClientHandler(context); } catch (Exception ex) { Context.TrySetException(ex); } }