dotnet / MQTTnet

MQTTnet is a high performance .NET library for MQTT based communication. It provides a MQTT client and a MQTT server (broker). The implementation is based on the documentation from http://mqtt.org/.
MIT License
4.49k stars 1.07k forks source link

Broker : MQTTNet doesn't seem to be adhering to the spec regarding Topic Alias- Broker's topicAliasMaximum is always set to 65535 #2037

Open nishankhadka09 opened 4 months ago

nishankhadka09 commented 4 months ago

The Server MUST NOT send a Topic Alias in a PUBLISH packet to the Client greater than Topic Alias Maximum [MQTT-3.1.2-26]. A value of 0 indicates that the Client does not accept any Topic Aliases on this connection. If Topic Alias Maximum is absent or zero, the Server MUST NOT send any Topic Aliases to the Client [MQTT-3.1.2-27].

Steps to reproduce:

  • From the client - set topicAliasMaximum to 10
  • make a connection request
  • receive connAck on Success

MqttConnAck{reasonCode=SUCCESS, sessionPresent=false, restrictions=MqttConnAckRestrictions{receiveMaximum=65535, maximumPacketSize=268435460, topicAliasMaximum=65535, maximumQos=EXACTLY_ONCE, retainAvailable=true, wildcardSubscriptionAvailable=true, sharedSubscriptionAvailable=false, subscriptionIdentifiersAvailable=true}}

But the Broker must not send topicAliasMaximum of 65535 as it should be less than or equal to the topic alias specified by the client.

nishankhadka09 commented 2 months ago

Is anyone looking into this??