public void FillClientStatus(MqttClientStatus clientStatus) { clientStatus.ClientId = ClientId; clientStatus.Endpoint = _endpoint; clientStatus.ProtocolVersion = _channelAdapter.PacketFormatterAdapter.ProtocolVersion; clientStatus.BytesSent = _channelAdapter.BytesSent; clientStatus.BytesReceived = _channelAdapter.BytesReceived; Statistics.FillClientStatus(clientStatus); }
public void FillStatus(MqttClientStatus status) { status.ClientId = ClientId; status.Endpoint = _endpoint; status.ProtocolVersion = _channelAdapter.PacketFormatterAdapter.ProtocolVersion; status.ReceivedApplicationMessagesCount = Interlocked.Read(ref _receivedApplicationMessagesCount); status.SentApplicationMessagesCount = Interlocked.Read(ref _sentApplicationMessagesCount); status.ReceivedPacketsCount = Interlocked.Read(ref _receivedPacketsCount); status.SentPacketsCount = Interlocked.Read(ref _sentPacketsCount); status.ConnectedTimestamp = _connectedTimestamp; status.LastPacketReceivedTimestamp = LastPacketReceivedTimestamp; status.LastNonKeepAlivePacketReceivedTimestamp = _lastNonKeepAlivePacketReceivedTimestamp; status.BytesSent = _channelAdapter.BytesSent; status.BytesReceived = _channelAdapter.BytesReceived; }
public void FillClientStatus(MqttClientStatus clientStatus) { if (clientStatus == null) { throw new ArgumentNullException(nameof(clientStatus)); } clientStatus.ConnectedTimestamp = _connectedTimestamp; clientStatus.ReceivedPacketsCount = Interlocked.Read(ref _receivedPacketsCount); clientStatus.SentPacketsCount = Interlocked.Read(ref _sentPacketsCount); clientStatus.ReceivedApplicationMessagesCount = Interlocked.Read(ref _receivedApplicationMessagesCount); clientStatus.SentApplicationMessagesCount = Interlocked.Read(ref _sentApplicationMessagesCount); clientStatus.LastPacketReceivedTimestamp = _lastPacketReceivedTimestamp; clientStatus.LastPacketSentTimestamp = _lastPacketSentTimestamp; clientStatus.LastNonKeepAlivePacketReceivedTimestamp = _lastNonKeepAlivePacketReceivedTimestamp; }
public Task <IList <IMqttClientStatus> > GetClientStatusAsync() { var result = new List <IMqttClientStatus>(); lock (_clientConnections) { foreach (var connection in _clientConnections.Values) { var clientStatus = new MqttClientStatus(connection); connection.FillClientStatus(clientStatus); var sessionStatus = new MqttSessionStatus(connection.Session, this); connection.Session.FillSessionStatus(sessionStatus); clientStatus.Session = sessionStatus; result.Add(clientStatus); } } return(Task.FromResult((IList <IMqttClientStatus>)result)); }
public ServerMQTT(IMqttServer server, string internalClientId) { _server = server; servername = internalClientId; _server.UseClientConnectedHandler(async e => { MqttClientStatus clientStatus = (MqttClientStatus)(await _server.GetClientStatusAsync()).FirstOrDefault(o => o.ClientId == e.ClientId); Console.WriteLine($"Connectd {e.ClientId}"); Console.WriteLine($"{clientStatus.Endpoint}"); await clientStatus.Session.ClearPendingApplicationMessagesAsync(); ReceiveMsg?.Invoke(this, new GatewayStarted(e.ClientId, clientStatus.Endpoint)); }); _server.UseClientDisconnectedHandler(e => { ReceiveMsg?.Invoke(this, new GatewayDisconnected(e.ClientId)); }); _server.UseApplicationMessageReceivedHandler(msg => { Console.WriteLine($"Topic {msg.ClientId} {msg.ApplicationMessage.Topic} payload {msg.ApplicationMessage.ConvertPayloadToString()}"); if (msg.ClientId == _server.Options.ClientId || msg.ClientId == servername) { return; } var msgContext = ToMessage(msg.ApplicationMessage.Topic, msg.ApplicationMessage.ConvertPayloadToString()); if (msgContext != null) { ReceiveMsg?.Invoke(this, msgContext); } }); }
public void FillStatus(MqttClientStatus status) { throw new NotSupportedException(); }