public SendMqttMessage GetMqttMessage(int messageId) { SendMqttMessage mqttMessage = null; Messages.TryGetValue(messageId, out mqttMessage); return(mqttMessage); }
private void PubRecAck(SendMqttMessage mqttMessage) { PubRecPacket mqttPubAckMessage = new PubRecPacket() { PacketId = mqttMessage.MessageId, }; mqttMessage.Channel.WriteAndFlushAsync(mqttPubAckMessage); }
protected void PubRelAck(SendMqttMessage mqttMessage) { PubRelPacket mqttPubAckMessage = new PubRelPacket() { PacketId = mqttMessage.MessageId, }; mqttMessage.Channel.WriteAndFlushAsync(mqttPubAckMessage); }
private void PubMessage(IChannel channel, SendMqttMessage mqttMessage) { PublishPacket mqttPublishMessage = new PublishPacket((QualityOfService)mqttMessage.Qos, true, mqttMessage.Retain) { TopicName = mqttMessage.Topic, PacketId = mqttMessage.MessageId, Payload = Unpooled.WrappedBuffer(mqttMessage.ByteBuf) }; channel.WriteAndFlushAsync(mqttPublishMessage); }
private SendMqttMessage Enqueue(IChannel channel, int messageId, String topic, byte[] datas, int mqttQoS, ConfirmStatus confirmStatus) { var message = new SendMqttMessage { ByteBuf = datas, Channel = channel, MessageId = messageId, Qos = mqttQoS, Time = DateTime.Now.Ticks / 10000, ConfirmStatus = confirmStatus, Topic = topic }; _scanRunnable.Enqueue(message); return(message); }
public override void Execute(SendMqttMessage poll) { if (CheckTime(poll.Time) && poll.Channel.Active) { poll.Time = DateTime.Now.Ticks / 10000; switch (poll.ConfirmStatus) { case ConfirmStatus.PUB: PubMessage(poll.Channel, poll); break; case ConfirmStatus.PUBREL: PubRelAck(poll); break; case ConfirmStatus.PUBREC: PubRecAck(poll); break; } } }
public void RemoveMqttMessage(int messageId) { SendMqttMessage mqttMessage = null; Messages.Remove(messageId, out mqttMessage); }
public void AddMqttMessage(int messageId, SendMqttMessage msg) { Messages.AddOrUpdate(messageId, msg, (id, message) => msg); }
public void Enqueue(SendMqttMessage t) { _queue.Enqueue(t); }
/// <summary> /// Executes the specified poll. /// </summary> /// <param name="poll">The poll.</param> public abstract void Execute(SendMqttMessage poll);