public MqttTcpServerListener( AddressFamily addressFamily, MqttServerTcpEndpointBaseOptions options, X509Certificate2 tlsCertificate, CancellationToken cancellationToken, IMqttNetChildLogger logger) { _cancellationToken = cancellationToken; _logger = logger; var sb = new SocketBuilder().SetSocket(Sockets.Model.SocketType.Tcp).UseStream(); if (options is MqttServerTlsTcpEndpointOptions tlsOptions) { sb = sb.WithSsl(tlsCertificate, tlsOptions.SslProtocol); } sb = sb.SetPort(options.Port); if (_addressFamily == AddressFamily.InterNetworkV6) { sb = sb.UseIPV6(); } socketOption = sb.Build(); serverSokcet = (StreamServerSocket)SocketFactory.CreateServerSocket(socketOption, cancellationToken); serverSokcet.OnAccepted += ServerSokcet_OnAccepted; }
/// <summary> /// called on client sockets are created in connect /// </summary> public MqttTcpChannel(IMqttClientOptions clientOptions) { _clientOptions = clientOptions ?? throw new ArgumentNullException(nameof(clientOptions)); _options = (MqttClientTcpOptions)clientOptions.ChannelOptions; var builder = new SocketBuilder() .UseStream() .SetIP(_options.Server) .SetPort(_options.Port ?? 1883); if (_options.TlsOptions.UseTls) { builder = builder.WithSsl(_options.TlsOptions.SslProtocol); } var option = builder.Build(); _clientSocket = SocketFactory.CreateClientSocket(option); }