Get answers to the most common questions regarding IoT Edge Connect.
Q: Which version of MQTT does IoT Edge Connect support?
Currently, IoT Edge Connect supports MQTT 3.1.1.
Q: Do I need to use a developer relations sample—or write my own device code—to test my sandbox?
No. There are some other open source MQTT clients that you can use. The Eclipse Paho-based MQTTfx client will work with your sandbox, as long as you use a valid JWT and use topics that match your access control lists (e.g., your topics start with the same prefix). Some other off-the-shelf tools may not work; Mosquitto test clients, for example, will not work at this time as they do not support server name indication (SNI), and SNI is required for IoT Edge Connect.
Q: Why isn’t my device/client connecting?
There are several reasons this could be happening. First and foremost, you must use SNI to connect. Some older versions of Java, for example, had a bug that required overwriting the SNI header which would prevent a connection from occurring. If the problem is not SNI, the likely culprit is some type of authentication or authorization error.
Q: Why does my connection drop when I try to publish a message?
Under MQTT 3.1.1 there is no mechanism for sending an error code back on a publish (only an acknowledgment, or “ACK”). So, if you are not authorized to publish on a topic, for example, the only mechanism to reject the message is to drop the connection.
Q: My software connects just fine, and then after a reconnect, it can no longer connect. Why?
If your connection drops, and you try to reconnect in the same process, some of the Paho clients will step down the protocol automatically; once the protocol is changed, the connection cannot happen. The Java Paho client, for example, does this step-down by default. Make sure the connection options setting specifies 3.1.1 to prevent the step-down.